ht_hooks
Version:
ht React 业务 Hooks
28 lines • 910 B
JavaScript
import { __read } from "tslib";
import { useState } from 'react';
import useEventListener from '../useEventListener';
import isBrowser from '../utils/isBrowser';
var getVisibility = function () {
if (!isBrowser) {
return 'visible'; //如果不是浏览器环境(例如服务器端渲染),它会返回 'visible',确保在这种情况下不会出错
}
return document.visibilityState;
};
function useDocumentVisibility() {
var _a = __read(useState(function () {
return getVisibility();
}), 2),
documentVisibility = _a[0],
setDocumentVisibility = _a[1];
useEventListener('visibilitychange',
//在文档的可见性状态(document.visibilityState)发生变化时触发的
function () {
setDocumentVisibility(getVisibility());
}, {
target: function () {
return document;
}
});
return documentVisibility;
}
export default useDocumentVisibility;