uniapp自定義網(wǎng)絡(luò)檢測組件項目實戰(zhàn)總結(jié)分析
導(dǎo)語
很多時候手機設(shè)備會突然沒網(wǎng),這時候就需要一個網(wǎng)絡(luò)檢測組件,在沒網(wǎng)的時候顯示提示用戶,提供用戶體驗。
準備工作
- 在
components
新建一個q-online
文件夾,并新建一個q-online.vue
的組件; - 按照前一篇所說的頁面結(jié)構(gòu),編寫好預(yù)定的網(wǎng)絡(luò)檢測頁面;
原理分析
主要是使用uni.onNetworkStatusChange
來判斷網(wǎng)絡(luò)狀態(tài),然后根據(jù)狀態(tài)調(diào)整頁面樣式顯示網(wǎng)絡(luò)提示。
組件實現(xiàn)
準備工作和原理分析完成后,接下來寫一個網(wǎng)絡(luò)檢測頁面。
模板部分
這里提供了兩種提示,一種是全屏顯示,一種是頂部顯示,支持自定義插槽。
<view class="q-online" v-if="show"> <slot name="content"> <view :class="{'q-online-inner': true, [props.type]: true}"> <q-icon class="q-online-icon" :name="props.type == 'top' ? 'info-circle' : 'wifi'" :size="props.type == 'top' ? 20 : 52" color="#f30d0d" /> <text class="q-online-txt">您的網(wǎng)絡(luò)已斷開,請檢查連接!</text> </view> </slot> </view>
樣式部分
.q-online { .q-online-inner { display: flex; justify-content: center; align-items: center; width: 100%; height: 100rpx; background: $netBg; .q-online-icon { margin-right: 20rpx; } .q-online-txt { color: $netColor; font-size: 30rpx; } &.full { position: absolute; top: 0; left: 0; flex-direction: column; height: 100%; background: $white; z-index: 39; .q-online-txt { margin-top: 30rpx; font-size: 36rpx; } } } }
腳本部分
- 引入依賴包和屬性設(shè)置
import { ref } from "vue"; import { onLoad } from "@dcloudio/uni-app"; // 頁面屬性 let show = ref(false); // 顯示類型 const props = defineProps({ type: { type: String, default: "top", // top 頂部 full 全屏 }, }); // 狀態(tài)發(fā)送 const emits = defineEmits(["change"]);
- 方法定義
// 頁面方法 // 顯示 onLoad((option) => { checkNet(); }); // 檢測網(wǎng)絡(luò) function checkNet() { uni.onNetworkStatusChange((res) => { const status = res.isConnected; show.value = !status; emits("change", status); let title = status ? "網(wǎng)絡(luò)已連接!" : "網(wǎng)絡(luò)已斷開!", icon = status ? "success" : "error"; uni.showToast({ title, icon, }); }); }
實戰(zhàn)演練
模板使用
<!-- 頂部風(fēng)格 --> <q-online type="top" /> <!-- 全屏風(fēng)格 --> <q-online type="full" @change="getNetStatus" />
腳本使用
// 獲取網(wǎng)絡(luò)狀態(tài) function getNetStatus(val) { console.log(`網(wǎng)絡(luò)狀態(tài):${val ? "有網(wǎng)" : "無網(wǎng)"}`); }
案例展示
頂部效果
全屏效果
最后
以上就是uniapp自定義網(wǎng)絡(luò)檢測組件項目實戰(zhàn)總結(jié)分析的詳細內(nèi)容,更多關(guān)于uniapp網(wǎng)絡(luò)檢測組件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript箭頭函數(shù)_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了JavaScript箭頭函數(shù)的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Javascript獲取background屬性中url的值
Javascript獲取CSS中屬性值方法有很多,今天工作的時候遇到了一個問題是需要利用Javascript獲取css中background-img屬性url的值,通過查閱網(wǎng)站的資料找到了解決方法,現(xiàn)在將方法分享給大家,有需要的朋友們們可以參考借鑒,下面來一起看看吧。2016-10-10JavaScript裝飾器函數(shù)(Decorator)實例詳解
這篇文章主要介紹了JavaScript裝飾器函數(shù)(Decorator),結(jié)合實例形式分析了JavaScript裝飾器函數(shù)(Decorator)的功能、實現(xiàn)與使用方法,需要的朋友可以參考下2017-03-03ionic App問題總結(jié)系列之ionic點擊系統(tǒng)返回鍵退出App
本篇文章主要介紹了ionic App問題總結(jié)系列之ionic點擊系統(tǒng)返回鍵退出App,具有一定的參考價值,有興趣的可以了解一下2017-08-08js實現(xiàn)把圖片的絕對路徑轉(zhuǎn)為base64字符串、blob對象再上傳
本文主要介紹了JavaScript把項目本地的圖片或者圖片的絕對路徑轉(zhuǎn)為base64字符串、blob對象再上傳的方法,具有一定的參考價值,需要的朋友一起來看下吧2016-12-12IE8利用自帶的setCapture和releaseCapture解決iframe的拖拽事件方法
最近有個需求須要實現(xiàn)左右拖拽功能,頁面右邊是個iframe頁面,在chrome測試通過之后,發(fā)現(xiàn)在ie8上面效果不是很理想,查閱相關(guān)資料找到可以使用ie自帶的setCapture和releaseCapture來解決,需要的朋友可以參考下2016-10-10