如何让 useEffect 像 ComponentDidUpdate 一样快速响应 props 变化?

How to make useEffect react on props change as fast as ComponentDidUpdate?

在以下情况下更新 isLoading 属性时,rotateLogo() 会立即触发:

class Logo extends Component {
    constructor(props) {
      super(props);

      };
    }

    componentDidUpdate() {
      if (this.props.isLoading) {
        this.rotateLogo();
      }

    }

...

但是,当尝试使用 useEffect 在功能组件中实现相同功能时,isLoading 的更新和更新之间存在相当大的延迟 rotateLogo()

的激活
const Logo = ({ isLoading }) => {

  useEffect(() => {
    if (isLoading) {
      rotateLogo();
    }
  }, [isLoading])

...

在这种情况下,您可能希望同步重新渲染,因此您应该使用 useLayoutEffect 而不是 useEffecthttps://reactjs.org/docs/hooks-reference.html#uselayouteffect