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