Skip to content

useNetwork

Category
Export Size
964 B
Last Changed
3 weeks ago

Reactive Network status. The Network Information API provides information about the system's connection in terms of general connection type (e.g., 'wifi', 'cellular', etc.). This can be used to select high definition content or low definition content based on the user's connection. The entire API consists of the addition of the NetworkInformation interface and a single property to the Navigator interface: Navigator.connection.

Demo

isSupported: true
isOnline: true
saveData: false
onlineAt: 1755743073804
downlink: 10
effectiveType: 4g
rtt: 0

Usage

ts
import { 
useNetwork
} from '@vueuse/core'
const {
isOnline
,
offlineAt
,
downlink
,
downlinkMax
,
effectiveType
,
saveData
,
type
} =
useNetwork
()
console
.
log
(
isOnline
.
value
)

To use as an object, wrap it with reactive()

ts
import { 
reactive
} from 'vue'
const
network
=
reactive
(
useNetwork
())
console
.
log
(
network
.
isOnline
)

Component Usage

This function also provides a renderless component version via the @vueuse/components package. Learn more about the usage.

vue
<template>
  <UseNetwork v-slot="{ 
isOnline
,
type
}">
Is Online: {{
isOnline
}}
Type: {{
type
}}
</UseNetwork> </template>

Type Declarations

Show Type Declarations
ts
export type 
NetworkType
=
| "bluetooth" | "cellular" | "ethernet" | "none" | "wifi" | "wimax" | "other" | "unknown" export type
NetworkEffectiveType
= "slow-2g" | "2g" | "3g" | "4g" | undefined
export interface NetworkState {
isSupported
:
ComputedRef
<boolean>
/** * If the user is currently connected. */
isOnline
:
Readonly
<
ShallowRef
<boolean>>
/** * The time since the user was last connected. */
offlineAt
:
Readonly
<
ShallowRef
<number | undefined>>
/** * At this time, if the user is offline and reconnects */
onlineAt
:
Readonly
<
ShallowRef
<number | undefined>>
/** * The download speed in Mbps. */
downlink
:
Readonly
<
ShallowRef
<number | undefined>>
/** * The max reachable download speed in Mbps. */
downlinkMax
:
Readonly
<
ShallowRef
<number | undefined>>
/** * The detected effective speed type. */
effectiveType
:
Readonly
<
ShallowRef
<
NetworkEffectiveType
| undefined>>
/** * The estimated effective round-trip time of the current connection. */
rtt
:
Readonly
<
ShallowRef
<number | undefined>>
/** * If the user activated data saver mode. */
saveData
:
Readonly
<
ShallowRef
<boolean | undefined>>
/** * The detected connection/network type. */
type
:
Readonly
<
ShallowRef
<
NetworkType
>>
} /** * Reactive Network status. * * @see https://vueuse.org/useNetwork * @param options * * @__NO_SIDE_EFFECTS__ */ export declare function
useNetwork
(
options
?:
ConfigurableWindow
,
):
Readonly
<NetworkState>
export type
UseNetworkReturn
=
ReturnType
<typeof
useNetwork
>

Source

SourceDemoDocs

Contributors

Anthony Fu
SerKo
Jelf
Robin
IlyaL
Fernando Fernández
Alex Liu
Anthony Fu
Daniil Rudnov
丶远方
vaakian X
Kirk Lin
Lexpeartha
webfansplz
wheat
Alex Kozack
Antério Vieira

Changelog

v13.6.0 on
d32f8 - refactor: add @__NO_SIDE_EFFECTS__ annotations to all pure functions (#4907)
v12.4.0 on
dd316 - feat: use passive event handlers everywhere is possible (#4477)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)
v11.1.0 on
99179 - fix: return immutable values (#4187)

Released under the MIT License.

Save 37% on one year of learning Vue, Includes the Vue.js Master Class.
Get Offer