Skip to content

useNetwork

Category
Export Size
814 B
Last Changed
15 minutes ago

响应式地获取 网络状态。网络信息 API 提供了有关系统连接的信息,例如一般连接类型(例如,“wifi”,“cellular”等)。这可以用于根据用户的连接选择高清晰度内容或低清晰度内容。整个 API 由 NetworkInformation 接口的添加和 Navigator 接口的单个属性组成:Navigator.connection。

Demo

isSupported: false
isOnline: true
saveData: false
type: 'unknown'

使用方法

js
import { useNetwork } from '@vueuse/core'

const { isOnline, offlineAt, downlink, downlinkMax, effectiveType, saveData, type } = useNetwork()

console.log(isOnline.value)

要将其作为对象使用,请使用 reactive() 进行包装

js
import { reactive } from 'vue'

const network = reactive(useNetwork())

console.log(network.isOnline)

组件使用

vue
<template>
  <UseNetwork v-slot="{ isOnline, type }">
    是否在线:{{ isOnline }} 类型:{{ type }}
  </UseNetwork>
</template>

类型声明

显示类型声明
typescript
export type NetworkType =
  | "bluetooth"
  | "cellular"
  | "ethernet"
  | "none"
  | "wifi"
  | "wimax"
  | "other"
  | "unknown"
export type NetworkEffectiveType = "slow-2g" | "2g" | "3g" | "4g" | undefined
export interface NetworkState {
  isSupported: Readonly<Ref<boolean>>
  /**
   * 用户当前是否连接到网络。
   */
  isOnline: Readonly<Ref<boolean>>
  /**
   * 用户上次连接到网络的时间。
   */
  offlineAt: Readonly<Ref<number | undefined>>
  /**
   * 在此时间点,如果用户处于离线状态并重新连接。
   */
  onlineAt: Readonly<Ref<number | undefined>>
  /**
   * 下载速度,以 Mbps 为单位。
   */
  downlink: Readonly<Ref<number | undefined>>
  /**
   * 可达到的最大下载速度,以 Mbps 为单位。
   */
  downlinkMax: Readonly<Ref<number | undefined>>
  /**
   * 检测到的有效速度类型。
   */
  effectiveType: Readonly<Ref<NetworkEffectiveType | undefined>>
  /**
   * 当前连接的预估往返时间。
   */
  rtt: Readonly<Ref<number | undefined>>
  /**
   * 用户是否启用了数据节省模式。
   */
  saveData: Readonly<Ref<boolean | undefined>>
  /**
   * 检测到的 connection/network 类型。
   */
  type: Readonly<Ref<NetworkType>>
}
/**
 * 响应式网络状态。
 *
 * @see https://vueuse.org/useNetwork
 * @param options
 */
export declare function useNetwork(
  options?: ConfigurableWindow,
): Readonly<NetworkState>
export type UseNetworkReturn = ReturnType<typeof useNetwork>

Source

SourceDemoDocs

贡献者

Anthony Fu
丶远方
Jelf
Anthony Fu
Daniil Rudnov
vaakian X
Kirk Lin
Lexpeartha
webfansplz
wheat
Alex Kozack
Antério Vieira

变更日志

v11.1.0 on 9/16/2024
99179 - fix: return immutable values (#4187)
v9.11.0 on 1/17/2023
d5321 - fix(components): mark defineComponent as pure (#2623)

Released under the MIT License.