uniapp自定義網(wǎng)絡檢測組件項目實戰(zhàn)總結(jié)分析
導語
很多時候手機設備會突然沒網(wǎng),這時候就需要一個網(wǎng)絡檢測組件,在沒網(wǎng)的時候顯示提示用戶,提供用戶體驗。
準備工作
- 在
components新建一個q-online文件夾,并新建一個q-online.vue的組件; - 按照前一篇所說的頁面結(jié)構(gòu),編寫好預定的網(wǎng)絡檢測頁面;
原理分析
主要是使用uni.onNetworkStatusChange來判斷網(wǎng)絡狀態(tài),然后根據(jù)狀態(tài)調(diào)整頁面樣式顯示網(wǎng)絡提示。
組件實現(xiàn)
準備工作和原理分析完成后,接下來寫一個網(wǎng)絡檢測頁面。
模板部分
這里提供了兩種提示,一種是全屏顯示,一種是頂部顯示,支持自定義插槽。
<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)絡已斷開,請檢查連接!</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;
}
}
}
}腳本部分
- 引入依賴包和屬性設置
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)絡
function checkNet() {
uni.onNetworkStatusChange((res) => {
const status = res.isConnected;
show.value = !status;
emits("change", status);
let title = status ? "網(wǎng)絡已連接!" : "網(wǎng)絡已斷開!",
icon = status ? "success" : "error";
uni.showToast({
title,
icon,
});
});
}實戰(zhàn)演練
模板使用
<!-- 頂部風格 --> <q-online type="top" /> <!-- 全屏風格 --> <q-online type="full" @change="getNetStatus" />
腳本使用
// 獲取網(wǎng)絡狀態(tài)
function getNetStatus(val) {
console.log(`網(wǎng)絡狀態(tài):${val ? "有網(wǎng)" : "無網(wǎng)"}`);
}案例展示
頂部效果


全屏效果


最后
以上就是uniapp自定義網(wǎng)絡檢測組件項目實戰(zhàn)總結(jié)分析的詳細內(nèi)容,更多關于uniapp網(wǎng)絡檢測組件的資料請關注腳本之家其它相關文章!
相關文章
JS實現(xiàn)自動輪播圖效果(自適應屏幕寬度+手機觸屏滑動)
這篇文章主要介紹了JS實現(xiàn)自動輪播圖效果(自適應屏幕寬度+手機觸屏滑動),需要的朋友可以參考下2017-06-06
uni-app使用Vite.config.js配置文件的超詳細教程
這篇文章主要給大家介紹了關于uni-app使用Vite.config.js配置文件的超詳細教程,在uniapp開發(fā)中,vue.config.js是配置webpack的關鍵文件之一,也可以說是uniapp項目自定義配置的中心,需要的朋友可以參考下2023-12-12
一文詳解Three.js與Babylon.js的主要區(qū)別是什么
Babylon.js和Three.js之間的第一個區(qū)別是Babylon.js是一個實時3D引擎,使用HTML5后顯示3D圖形,這篇文章主要介紹了Three.js與Babylon.js主要區(qū)別是什么的相關資料,需要的朋友可以參考下2025-12-12
Radio 單選JS動態(tài)添加的選項onchange事件無效的解決方法
radio 單選JS動態(tài)添加的選項,onchange事件無效。使用delegate()函數(shù)可以解決該問題,具體解決方案大家通過本文詳細了解下2016-12-12
JavaScript實現(xiàn)給浮點數(shù)添加千分位逗號的多種方法
JavaScript 是一門強大的前端語言,在處理數(shù)值格式化時提供了多種方法,在開發(fā)過程中,我們經(jīng)常需要將大數(shù)字格式化,使其更具可讀性,例如,將 12000000.11 轉(zhuǎn)換為 12,000,000.11,本文將詳細介紹 JavaScript 中如何實現(xiàn)這種格式化,需要的朋友可以參考下2025-04-04

