组件更新
componentWillReceiveProps(nextProps)
这是第一个调用属性更改的函数。
当组件的属性发生变化时,React 将使用新属性调用此函数。你可以访问到旧的道具与 this.props 和新道具与 nextProps 。
使用这些变量,你可以在旧道具和新道具之间进行一些比较操作,或者因为属性更改等而调用函数。
componentWillReceiveProps(nextProps){
if (nextProps.initialCount && nextProps.initialCount > this.state.count){
this.setState({
count : nextProps.initialCount
});
}
}
shouldComponentUpdate(nextProps, nextState)
这是第二个函数调用属性更改和第一个 on 状态更改。
默认情况下,如果另一个组件/组件更改组件的属性/状态, React 将呈现组件的新版本。在这种情况下,此函数始终返回 true。
如果组件必须更新,你可以覆盖此功能并更精确地选择。
该功能主要用于优化。
如果函数返回 false ,则更新管道立即停止。
componentShouldUpdate(nextProps, nextState){
return this.props.name !== nextProps.name ||
this.state.count !== nextState.count;
}
componentWillUpdate(nextProps, nextState)
这个功能就像 componentWillMount()
。更改不在 DOM 中,因此你可以在更新执行之前进行一些更改。
/!\: 你不能使用 this.setState()
。
componentWillUpdate(nextProps, nextState){}
render()
有一些变化,所以重新渲染组件。
componentDidUpdate(prevProps, prevState)
与 componentDidMount()
相同的东西: DOM 被刷新,所以你可以在这里对 DOM 做一些工作。
componentDidUpdate(prevProps, prevState){}