- 生命周期的定义:描述组件一系列的成长过程叫生命周期
- 修改生命周期的是:compontentWillReceiveProps和componentWillMount
出生阶段(创建)
- 以下只有render会执行多次,其他的都执行一次
。constructor:表示初始化函数,接受一个props,设置组件的默认状态(state)
。 componentWillMount:表示组件将要被渲染的时候
。 render:表示组件正在渲染的时候触发的,进行diff算法,产生最小化差异,局部更新dom;
。 componentDidMount:表示组件渲染结束,(请求数据是在componentDidMount)
成长阶段(变化)
成长阶段是state发生变化的时候触发(只要发生变化,就会执行render)
- shouldComponentUpdate:表示组件是否会更新,返回true或者fasle,true会发生触发组件更新,false不会触发组件更新(停止执行)。
主要体现了性能优化:接收的是最新的props和上一次的state
shouldComponentUpdate(nextProps,nextState){
console.log("第一个参数是props","第二个参数是state")
return false; //必须return出去一个结果
}
- compontentWillReceiveProps:表示最新的props发生变化,里面也是两个参数,接收的是都是最新的props和最新的state.下面也是一样执行.
- componentWillUpdate:表示组件将要被更新(更新之前的准备工作)
componentWillUpdate(newProps,newState){
console.log("第一个参数是最新props","第二个参数是最新的state")
}
都是表示最新的props和state
- render()执行多次
- componentDidUpdate:表示组件更新完成
componentDidUpdate(prevProps,prevState){
组件更新完成(上一次的props和上一次的state)
}
状态和props的生命周期
死亡阶段(卸载)
- componentWillUnmount:组件将被卸载,清理组件垃圾(组件卸载的时候触发)