ht_hooks
Version:
ht React 业务 Hooks
35 lines (34 loc) • 1.25 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _tslib = require("tslib");
var _react = require("react");
var _useEventListener = _interopRequireDefault(require("../useEventListener"));
var _isBrowser = _interopRequireDefault(require("../utils/isBrowser"));
var getVisibility = function getVisibility() {
if (!_isBrowser["default"]) {
return 'visible'; //如果不是浏览器环境(例如服务器端渲染),它会返回 'visible',确保在这种情况下不会出错
}
return document.visibilityState;
};
function useDocumentVisibility() {
var _a = (0, _tslib.__read)((0, _react.useState)(function () {
return getVisibility();
}), 2),
documentVisibility = _a[0],
setDocumentVisibility = _a[1];
(0, _useEventListener["default"])('visibilitychange',
//在文档的可见性状态(document.visibilityState)发生变化时触发的
function () {
setDocumentVisibility(getVisibility());
}, {
target: function target() {
return document;
}
});
return documentVisibility;
}
var _default = exports["default"] = useDocumentVisibility;