React:componentWillUpdate

时间:2016-01-15 12:22:29

标签: reactjs

有人可以解释下一个背景下真正发生的事情:

假设我有一个应用程序组件(父级),并且一些子组件让我们说索引,搜索,关于这三个孩子有他们的孩子。

当我在App Component中调用componentWillUpdate时会发生什么...,新的状态/道具会出现但是叶子(孩子们)会发生什么,他们会自己重新渲染吗?

并且让我说我在App中的这个componentWillUpdate中覆盖了我的DOM,并且我在componentDidMount或componentWillMount中的叶子组件中的DOM中也是同样的东西......哪个值将是最后一个?

1 个答案:

答案 0 :(得分:5)

首先,你不应该手动调用componentWillUpdate。如果作为其生命周期的一部分,React会调用它。

根据comment in ReactCompositeComponent.js,这是更新阶段的问题:

Update Phases:
        - componentWillReceiveProps (only called if parent updated)
        - shouldComponentUpdate
          - componentWillUpdate
            - render
            - [children's constructors or receive props phases]
          - componentDidUpdate

正如您所见,在呈现儿童共犯之前调用了App.render

如果由于某种原因想要手动操作DOM,componentWillUpdate不是正确的操作方法。每次更新后使用componentDidUpdate或初始渲染后使用componentDidMount。在父母的生命周期方法之前触发了孩子的componentDidUpdatecomponentDidMount