什么是 react hook ?

它们不是共享状态的方法,而是共享有状态逻辑的方法

举个简单例子

如下自定义 useWindowSize ,可以像调用一个函数一样,调用一个hook,每个组件的内部状态相互独立

import useWindowSize from './useWindowSize';const Demo = () => {  const {width, height} = useWindowSize();  return (    <div>      <div>width: {width}</div>      <div>height: {height}</div>    </div>  );};
import { useEffect, useState } from "react";const useWindowSize = () => {  const [state, setState] = useState<{ width: number; height: number }>({    width: window.innerWidth,    height: window.innerHeight  });  useEffect(() => {    const handler = () => {      setState({        width: window.innerWidth,        height: window.innerHeight      });    };    window.addEventListener('resize', handler);    return () => {      window.removeEventListener('resize', handler);    };  }, []);  return state;};export default useWindowSize;