我是React的新手。目前,我正在学习胡克。我在学习useEffect
挂钩。它主要与生命周期方法(componentDidMount
、componentDidUpdate
和componentWillUnmount
等(进行比较。我的问题是关于这些函数的行为。生命周期方法是同步运行还是异步运行?useEffect
呢?
与componentDidMount或componentDidUpdate不同,使用useEffect调度的效果不会阻止浏览器更新屏幕。这会让你的应用程序感觉更灵敏。大多数效果不需要同步发生。在不常见的情况下(例如测量布局(,有一个单独的useLayoutEffect挂钩,其API与useEffect相同。您应该浏览文档以获得清晰的视图。
就useEffect而言,它是异步运行的,就像这个一样
您以某种方式导致渲染(更改状态或父级重新渲染(
React渲染您的组件(称之为(
屏幕在视觉上更新
然后使用效果运行
React也有同步的useEffect,即useLayoutEffect
您以某种方式导致渲染(更改状态或父级重新渲染(
React渲染您的组件(称之为(
useLayoutEffect运行,React等待它完成。
屏幕在视觉上更新
您可以阅读更多关于useLayoutEffect 的信息
希望它能帮助