React生命周期中的Updation阶段,也就是组件发生改变的更新阶段,这是React生命周期中比较复杂的一部分,它有两个基本部分组成,一个是props属性改变,一个是state状态改变(这个在生命周期的图片中可以清楚的看到)。
图纸来源:https://projects.wojtekmaj.pl/react-lifecycle-methods-diagram/
写在顶层组件没有接收props属性是不执行的 ,要写在接收props属性的组件中 子组件接收到父组件传递过来的参数,父组件render函数重新被执行,这个生命周期就会被执行。 组件第一次存在于dom中,函数不会执行 第一次渲染 如果已经存在dom中,函数再会执行(第二次发生变化) 16.4之前版本
componentWillReceiveProps(){ console.log("componentWillReceiveProps") }16.4之后版本 挂载跟 父组件更新都会触发此 生命周期
static getDerivedStateFromProps(props, state){ // console.log(props,state) return state; }版本跟新前后无变化 函数会在组件更新之前,自动被执行,会在render 渲染之前执行 它要求返回一个布尔类型的结果,必须有返回值,false 下面的代码就不再执行
shouldComponentUpdate(nextProps, nextState){ console.log(1,'shouldComponentUpdate'); return true; }16.4以前版本
componentWillUpdate(){ console.log('componentWillUpdate') // true/false 同上 return true }16.4以后版本
UNSAFE_componentWillUpdate(nextProps, nextState){ console.log(2,"即将更新组件"); }16.4之前无此声明周期
getSnapshotBeforeUpdate(prevProps, prevState){ console.log(4,'getSnapshotBeforeUpdate'); return 123; }无版本变化
componentDidUpdate(){ console.log('5-componentDidUpdate') }结合图示思路会更加清晰了