反应生命周期方法是同步还是异步?

时间:2019-11-08 11:26:42

标签: reactjs react-hooks use-effect react-lifecycle

我是React的新手。目前,我正在学习Hooks。我正在研究useEffect挂钩。通常将其与生命周期方法(componentDidMountcomponentDidUpdatecomponentWillUnmount等)进行比较。我的问题是关于这些功能的行为。生命周期方法是同步运行还是同步运行? useEffect呢?

2 个答案:

答案 0 :(得分:0)

与componentDidMount或componentDidUpdate不同,使用useEffect安排的效果不会阻止浏览器更新屏幕。这使您的应用程序感觉更灵敏。大多数效果不需要同步发生。在不常见的情况下(例如测量布局),会有一个单独的useLayoutEffect挂钩,其API与useEffect相同。您应该通过Documentation才能清楚查看。

答案 1 :(得分:0)

就useEffect而言,它是异步运行的,因此

  

您以某种方式导致渲染(更改状态,或父级重新渲染)

     

React渲染您的组件(称为它)

     

屏幕在视觉上得到了更新

     

在useEffect运行时

React还具有同步useEffect,即useLayoutEffect

  

您以某种方式导致渲染(更改状态,或父级重新渲染)

     

React渲染您的组件(称为它)

     

useLayoutEffect运行,React等待它完成。

     

屏幕在视觉上得到了更新

您可以阅读有关useLayoutEffect

的更多信息

希望有帮助