文档
参考
FocusManager

FocusManager

FocusManager FocusManager 管理 Quaere 中的焦点状态。

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

它的可用方法有:

focusManager.setEventListener

setEventListener 用于设置自定义事件侦听器:

import { focusManager } from "quaere";
 
focusManager.setEventListener((handleFocus) => {
  // 监听 visibilitychange 事件
  if (typeof window !== "undefined" && window.addEventListener) {
    window.addEventListener("visibilitychange", handleFocus, false);
  }
 
  return () => {
    // 如果设置了新的处理程序,请确保取消订阅
    window.removeEventListener("visibilitychange", handleFocus);
  };
});

focusManager.subscribe

subscribe 用于订阅可见性状态的更改。它返回一个取消订阅函数:

import { focusManager } from "quaere";
 
const unsubscribe = focusManager.subscribe((isVisible) => {
  console.log("isVisible", isVisible);
});

focusManager.setFocused

setFocused 用于手动设置焦点状态。将 undefined 设置为使用默认焦点检查。

import { focusManager } from "quaere";
 
// 设置为有焦点
focusManager.setFocused(true);
 
// 设置为无焦点
focusManager.setFocused(false);
 
// 回退到默认焦点检查
focusManager.setFocused(undefined);

选项

  • focused: boolean | undefined

focusManager.isFocused

isFocused 用于请求当前的焦点状态。

const isFocused = focusManager.isFocused();