uniapp自定义网络检测组件项目实战总结分析

 更新时间:2023年09月19日 14:35:52   作者:MarkGuan  
这篇文章主要为大家介绍了uniapp自定义网络检测组件项目实战总结分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

导语

很多时候手机设备会突然没网,这时候就需要一个网络检测组件,在没网的时候显示提示用户,提供用户体验。

准备工作

  • components新建一个q-online文件夹,并新建一个q-online.vue的组件;
  • 按照前一篇所说的页面结构,编写好预定的网络检测页面;

原理分析

主要是使用uni.onNetworkStatusChange来判断网络状态,然后根据状态调整页面样式显示网络提示。

组件实现

准备工作和原理分析完成后,接下来写一个网络检测页面。

模板部分

这里提供了两种提示,一种是全屏显示,一种是顶部显示,支持自定义插槽。

<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">您的网络已断开,请检查连接!</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 全屏
  },
});
// 状态发送
const emits = defineEmits(["change"]);
  • 方法定义
// 页面方法
// 显示
onLoad((option) => {
  checkNet();
});
// 检测网络
function checkNet() {
  uni.onNetworkStatusChange((res) => {
    const status = res.isConnected;
    show.value = !status;
    emits("change", status);
    let title = status ? "网络已连接!" : "网络已断开!",
      icon = status ? "success" : "error";
    uni.showToast({
      title,
      icon,
    });
  });
}

实战演练

模板使用

<!-- 顶部风格 -->
<q-online type="top" />
<!-- 全屏风格 -->
<q-online type="full" @change="getNetStatus" />

脚本使用

// 获取网络状态
function getNetStatus(val) {
  console.log(`网络状态:${val ? "有网" : "无网"}`);
}

案例展示

顶部效果

全屏效果

最后

以上就是uniapp自定义网络检测组件项目实战总结分析的详细内容,更多关于uniapp网络检测组件的资料请关注脚本之家其它相关文章!

相关文章

  • 可以测试javascript运行效果的代码

    可以测试javascript运行效果的代码

    这篇文章主要介绍了如何在页面中可以简单的测试一些简单的JavaScript语句,需要的朋友可以参考下
    2010-04-04
  • Javascript之JSBridge初探

    Javascript之JSBridge初探

    这篇文章主要介绍了Javascript的JSBridge,对JSBridge感兴趣的同学,可以参考下
    2021-04-04
  • javascript移动开发中touch触摸事件详解

    javascript移动开发中touch触摸事件详解

    这篇文章主要为大家详细介绍了javascript移动开发中touch触摸事件,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • js通过循环多张图片实现动画效果

    js通过循环多张图片实现动画效果

    这篇文章主要为大家详细介绍了js通过循环多张图片实现动画效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • JS语法也可以有C#的switch表达式

    JS语法也可以有C#的switch表达式

    这篇文章主要为大家介绍了JS语法也可以有C#的switch表达式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • JS实现的简单表单验证功能示例

    JS实现的简单表单验证功能示例

    这篇文章主要介绍了JS实现的简单表单验证功能,涉及javascript针对表单提交内容的获取、判断、焦点设置等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • JS对大量数据进行多重过滤的方法

    JS对大量数据进行多重过滤的方法

    今天在工作中遇到一个问题,当前端通过Ajax从后端取得了大量的数据,需要根据一些条件过滤,但是发现写的过滤方法有问题,后来仔细的查找问题,通过网上的资料终于解决了这个问题,现在将解决的过程以及解决方法分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • 微信小程序中如何实现动态改变SVG颜色和尺寸

    微信小程序中如何实现动态改变SVG颜色和尺寸

    SVG可被非常多的工具读取和修改SVG与JPEG和GIF图像比起来,尺寸更小,且可压缩性更强,下面这篇文章主要给大家介绍了关于微信小程序中如何实现动态改变SVG颜色和尺寸的相关资料,需要的朋友可以参考下
    2022-07-07
  • javascript css在IE和Firefox中区别分析

    javascript css在IE和Firefox中区别分析

    我们讨论的主题CSS网页布局,最令大家头疼的问题就是浏览器兼容性,虽然52CSS.com介绍过很多这方向的知识,但依然让很多开发人员晕头转向,今天的这篇文章,将列出css和javascript在IE和Firefox中二十三个不同点,希望对大家的学习有所帮助。
    2009-02-02
  • 深入分析javascript中console命令

    深入分析javascript中console命令

    console对象是JavaScript的原生对象,它有点像Unix系统的标准输出stdout和标准错误stderr,可以输出各种信息用来调试程序,而且还提供了很多额外的方法,供开发者调用。它的常见用途有两个。显示网页代码运行时的错误信息。提供了一个命令行接口,用来与网页代码互动。
    2016-08-08

最新评论