译零 TransZero · TanStack Query 中文文档
主站

FocusManager

更新于 2026-11-02 Vue 查看英文原文 ↗

定义于:packages/query-core/src/focusManager.ts:14

FocusManager 用于管理 TanStack Query 内的焦点状态。

它可用于更改默认事件监听器,或手动更改焦点状态。

继承自

  • Subscribable<Listener>

方法

hasListeners()

TypeScript
1hasListeners(): boolean;

定义于:packages/query-core/src/subscribable.ts:43

当至少有一个监听器已注册时返回 true;所有监听器均已取消订阅后返回 false。

返回值

boolean

若至少有一个监听器已注册,则返回 true。

继承自

TypeScript
1Subscribable.hasListeners

isFocused()

TypeScript
1isFocused(): boolean;

定义于:packages/query-core/src/focusManager.ts:130

isFocused 可用于获取当前焦点状态。

返回值

boolean

通过 setFocused 设置的焦点状态;若未设置,则返回 document 是否可见。


onFocus()

TypeScript
1onFocus(): void;

定义于:packages/query-core/src/focusManager.ts:119

onFocus 会使用当前焦点状态通知所有已订阅的监听器。

返回值

void


setEventListener()

TypeScript
1setEventListener(setup: SetupFn): void;

定义于:packages/query-core/src/focusManager.ts:78

setEventListener 可用于设置一个自定义事件监听器,该监听器将用于判定焦点状态。所传入的 setup 函数接收一个 setFocused 回调:调用它并传入一个 boolean 值可手动设置焦点状态;不传参调用则重新评估当前焦点状态并通知订阅者。

参数

setup

SetupFn

接收 setFocused 回调,注册事件监听器,并可返回一个清理函数——该函数会在监听器被替换或不再需要时调用。

返回值

void

示例

TypeScript
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()

TypeScript
1setFocused(focused?: boolean): void;

定义于:packages/query-core/src/focusManager.ts:108

setFocused 可用于手动设置焦点状态。传入 undefined 将回退至默认焦点检测逻辑。

参数

focused?

boolean

焦点状态;或传入 undefined 以启用默认焦点检测。

返回值

void

示例

TypeScript
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()

TypeScript
1subscribe(listener: Listener): () => void;

定义于:packages/query-core/src/subscribable.ts:28

注册一个监听器,使其在该对象发出每次更新通知时被调用。返回一个用于移除该监听器的函数——调用它即可停止监听。基类自身永远不会主动移除监听器,但某些子类会在 destroy() 中清空全部监听器。

参数

listener

Listener

每次更新时被调用,参数为子类传递给其订阅者的值。

返回值

一个用于移除监听器的函数。

() => void

示例

TypeScript
1const unsubscribe = subscribable.subscribe(() => {2  // react to the update3})4 5unsubscribe()

继承自

TypeScript
1Subscribable.subscribe

本页为 TanStack Query 文档(Vue 版)的非官方中文翻译,原文由上游团队维护,遵循 MIT 许可。 译文如有偏差,以英文原文为准。

译自上游 59d11de