每次状态更新时都会执行整个Class组件或render()吗?

时间:2017-07-15 10:55:41

标签: reactjs

我从文档中读到,每次更新状态时都会重新呈现组件。这是表示整个类执行还是只表示render()?

Class Sample extends component {
    render() {
      <Footer onSelect = (item) => this.setState(item1:item) />
    }
}

如果根据上面的例子更新状态,那么进一步执行会是什么?

2 个答案:

答案 0 :(得分:0)

setState()函数将按此顺序运行一系列函数的链:

shouldComponentUpdate() > componentWillUpdate() > render() > componentDidUpdate()

对于提供的组件,只运行render()函数,更新与状态相关的任何组件。

答案 1 :(得分:-1)

更新组件中的状态时,它将触发多于render()函数。它会调用:

shouldComponentUpdate()

componentWillUpdate()

render()

componentDidUpdate()

如果您将该状态作为属性传递给子Component,此操作也会更新它,调用{Childis]中的componentWillReceiveProps()和所有上述函数,因此它也将被重新渲染。 / p>

您可以阅读有关React Lifecycle的好文章here