taro-hooks
Version:
为 Taro 而设计的 Hooks Library
27 lines • 963 B
JavaScript
import { useDidHide } from '@tarojs/taro';
import { useEffect, useState } from '@taro-hooks/core';
function useVisible() {
var _useState = useState(true),
visible = _useState[0],
changeVisible = _useState[1];
var listenVisible = function listenVisible() {
var visibleState = document.visibilityState;
changeVisible(visibleState === 'visible');
};
useEffect(function () {
window.addEventListener('visibilitychange', listenVisible, false);
window.addEventListener('focus', listenVisible, false);
window.addEventListener('blur', listenVisible, false);
return function () {
window.removeEventListener('visibilitychange', listenVisible, false);
window.removeEventListener('focus', listenVisible, false);
window.removeEventListener('blur', listenVisible, false);
};
}, []);
// unmount change false
useDidHide(function () {
changeVisible(false);
});
return visible;
}
export default useVisible;