FocusManager
定义于:packages/query-core/src/focusManager.ts:14
FocusManager 用于管理 TanStack Query 内的焦点状态。
它可用于更改默认事件监听器,或手动更改焦点状态。
继承自
Subscribable<Listener>
方法
hasListeners()
1hasListeners(): boolean;定义于:packages/query-core/src/subscribable.ts:43
当至少有一个监听器已注册时返回 true;所有监听器均已取消订阅后返回 false。
返回值
boolean
若至少有一个监听器已注册,则返回 true。
继承自
1Subscribable.hasListenersisFocused()
1isFocused(): boolean;定义于:packages/query-core/src/focusManager.ts:130
isFocused 可用于获取当前焦点状态。
返回值
boolean
通过 setFocused 设置的焦点状态;否则为文档是否可见。
onFocus()
1onFocus(): void;定义于:packages/query-core/src/focusManager.ts:119
onFocus 会使用当前焦点状态通知所有已订阅的监听器。
返回值
void
setEventListener()
1setEventListener(setup: SetupFn): void;定义于:packages/query-core/src/focusManager.ts:78
setEventListener 可用于设置一个自定义事件监听器,该监听器将用于确定焦点状态。提供的 setup 函数接收一个 setFocused 回调:调用它并传入一个 boolean 值可手动设置焦点状态;不传入任何参数则重新评估当前焦点状态并通知订阅者。
参数
setup
SetupFn
接收 setFocused 回调,注册事件监听器,并可返回一个清理函数——当监听器被替换或不再需要时,该函数会被调用。
返回值
void
示例
1import { focusManager } from '@tanstack/query-core'2 3focusManager.setEventListener((handleFocus) => {4 const listener = () => handleFocus()5 // Listen to visibilitychange6 if (typeof window !== 'undefined' && window.addEventListener) {7 window.addEventListener('visibilitychange', listener, false)8 }9 10 return () => {11 // Be sure to unsubscribe if a new handler is set12 window.removeEventListener('visibilitychange', listener)13 }14})setFocused()
1setFocused(focused?: boolean): void;定义于:packages/query-core/src/focusManager.ts:108
setFocused 可用于手动设置焦点状态。传入 undefined 将回退至默认焦点检查逻辑。
参数
focused?
boolean
焦点状态;或传入 undefined 以启用默认焦点检查。
返回值
void
示例
1import { focusManager } from '@tanstack/query-core'2 3// Set focused4focusManager.setFocused(true)5 6// Set unfocused7focusManager.setFocused(false)8 9// Fallback to the default focus check10focusManager.setFocused(undefined)subscribe()
1subscribe(listener: Listener): () => void;定义于:packages/query-core/src/subscribable.ts:28
注册一个监听器,在该对象发出每次更新通知时被调用。返回一个用于移除该监听器的函数——调用它即可停止监听。基类自身永远不会主动丢弃监听器,但某些子类会在 destroy() 中清空全部监听器。
参数
listener
Listener
每次更新时被调用,参数为子类传递给其订阅者的值。
返回值
一个用于移除监听器的函数。
() => void
示例
1const unsubscribe = subscribable.subscribe(() => {2 // react to the update3})4 5unsubscribe()继承自
1Subscribable.subscribe