Skip to content

useIdle

类别
导出体积
1.18 kB
上次更改
3 months ago

跟踪用户是否处于不活动状态。

示例

为了演示目的,在此演示中将空闲超时设置为 5秒(默认为1分钟)。
空闲状态: false
非活动时间: 0秒

使用方法

ts
import { 
useIdle
} from '@vueuse/core'
const {
idle
,
lastActive
} =
useIdle
(5 * 60 * 1000) // 5 分钟
console
.
log
(
idle
.
value
) // true 或 false

程序化重置:

ts
import { 
useCounter
,
useIdle
} from '@vueuse/core'
import {
watch
} from 'vue'
const {
inc
,
count
} =
useCounter
()
const {
idle
,
lastActive
,
reset
} =
useIdle
(5 * 60 * 1000) // 5 分钟
watch
(
idle
, (
idleValue
) => {
if (
idleValue
) {
inc
()
console
.
log
(`触发了 ${
count
.
value
}`)
reset
() // 重新启动空闲计时器。不会更改 lastActive 值
} })

组件使用

vue
<template>
  <UseIdle v-slot="{ 
idle
}"
:timeout
="5 * 60 * 1000">
是否空闲:{{
idle
}}
</UseIdle> </template>

类型声明

ts
export interface UseIdleOptions
  extends ConfigurableWindow,
    ConfigurableEventFilter {
  /**
   * 用于监听检测到的用户活动的事件名称
   *
   * @default ['mousemove', 'mousedown', 'resize', 'keydown', 'touchstart', 'wheel']
   */
  
events
?:
WindowEventName
[]
/** * 监听文档可见性变化 * * @default true */
listenForVisibilityChange
?: boolean
/** * ref idle 的初始状态 * * @default false */
initialState
?: boolean
} export interface UseIdleReturn {
idle
:
ShallowRef
<boolean>
lastActive
:
ShallowRef
<number>
reset
: () => void
} /** * 跟踪用户是否处于非活动状态。 * * @see https://vueuse.org/useIdle * @param timeout default to 1 minute * @param options IdleOptions */ export declare function
useIdle
(
timeout
?: number,
options
?: UseIdleOptions,
): UseIdleReturn

源码

源码演示文档

贡献者

Anthony Fu
一纸忘忧
IlyaL
Anthony Fu
wheat
SerKo
Arthur Darkstone
Melkumyants Danila
IlyaL
Fernando Fernández
Intaek H
nahvego
Hawtim
vaakian X
Jelf
Dan Mindru
btea
Shinigami
Alex Kozack
Antério Vieira

更新日志

8c521 - feat(components)!: refactor components and make them consistent (#4912)
319d8 - feat(shared): Introduce TimerHandle for setTimeout type (#4801)
c6469 - fix: changed the reset call when the initial value is true (#4800)
dd316 - feat: use passive event handlers everywhere is possible (#4477)
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)