react监听window窗口宽高变化,hook写法

860 阅读1分钟
function App() {
  const getWindowSize = () => ({
    innerHeight: window.innerHeight,
    innerWidth: window.innerWidth
  });

  const [windowsSize, setWindowsSize] = useState(getWindowSize());

  const handleResize = () => {
    setWindowsSize(getWindowSize());
  };

  useEffect(() => {
    // 监听
    window.addEventListener('resize', handleResize);
    // 销毁
    return () => window.removeEventListener('resize', handleResize);
  });
}