跳到主要内容

useWindowSize

const useWindowSize = () => {
const [windowSize, setWindowSize] = React.useState({
width: undefined,
height: undefined,
});

React.useEffect(() => {
const handleResize = () =>
setWindowSize({ width: window.innerWidth, height: window.innerHeight });

window.addEventListener('resize', handleResize);

handleResize();

return () => {
window.removeEventListener('resize', handleResize);
};
}, []);

return windowSize;
};

介绍

一个封装了获取当前浏览器窗口大小的钩子函数,返回值为包含长宽 widthheight 属性的对象。

使用方法

实时编辑器
function App() {
  const windowSize = useWindowSize();

  return (
    <p>
      当前窗口:
      <br />
      {JSON.stringify(windowSize)}
    </p>
  );
}
结果
Loading...

可以改变窗口的大小,观察输出结果的变化。