Skip to content

网络状态 Hooks:useOnline ​

useOnline 维护 isOnline 响应式网络标记(navigator.onLine 初始值 + window online / offline 事件),作用域销毁自动解绑。离线提示、断网守卫(提交前校验)、重连自动刷新的统一信号源。

基本用法 ​

vue
<script setup lang="ts">
import { ElMessage } from 'element-plus'
import { useOnline } from 'vue3-ep-biz-lib'

const { isOnline } = useOnline({
  onChange: (online) => {
    if (online) ElMessage.success('网络已恢复')
    else ElMessage.warning('网络已断开,请检查网络连接')
  },
})
</script>

<template>
  <el-alert v-if="!isOnline" type="warning" :closable="false" title="当前处于离线状态,操作将在恢复后同步" />
  <el-button :disabled="!isOnline">提交订单</el-button>
</template>

重连自动刷新 ​

ts
const { isOnline } = useOnline({
  onChange: (online) => {
    if (online) reload() // 断网恢复后拉取最新数据
  },
})

API ​

useOnline(options): UseOnlineReturn ​

成员类型说明
isOnlineRef<boolean>当前是否在线

options ​

属性类型默认值说明
onChange(online: boolean) => void—网络状态变化回调(重复同值不触发)

TIP

navigator.onLine 只反映网卡 / 连接状态,不保证可达业务服务;关键请求失败建议结合接口错误码兜底。长连接场景用 useWebSocket(自带断线重连)。