React组件生命周期

所谓组件的生命周期就是一个组件装载,更新,卸载的过程。

装载: 组件第一次的加载,在这里完成组件的加载和初始化。

更新: 在组件运行和交互阶段完成的组件的更新。

卸载: 组件的消亡阶段,在这里完成一些组件的清理工作。


react组件周期图

这里写图片描述


装载(Mounting)

getInitialState:

在组建创建加载之前调用,用来初始化组件的state(在es6语法中,初始化state用this.state = {date:1}写在constructor中)。

componentWillMount:

该方法在render之前调用,因此在这个方法中设置state不会触发重新渲染,在整个生命周期中只会执行一次。

componentDidMount:

组件装载完成后立即被执行,这个函数开始,就可以和 JS 其他框架交互了,例如设置计时 setTimeout 或者 setInterval,或者发起网络请求。这个函数也是只被调用一次。这个函数之后,就进入了稳定运行状态,等待事件触发。而且改变state将会触发重新渲染。


Updating(更新)

componentWillReceiveProps(nextProps):

输入参数 nextProps 是即将被设置的属性,旧的属性还是可以通过 this.props 来获取。在这个回调函数里面,你可以根据属性的变化,通过调用 this.setState() 来更新你的组件状态,这里调用更新状态是安全的,并不会触发额外的 render() 调用。

componentWillReceiveProps: function(nextProps) {  
  this.setState({
    countIncreasing: nextProps.count > this.props.count
  });
}

shouldComponentUpdate:

shouldComponentUpdate(nextProps, nextState)

输入参数 nextProps 和上面的 componentWillReceiveProps 函数一样,nextState 表示组件即将更新的状态值。这个函数的返回值决定是否需要更新组件,如果 true 表示需要更新,继续走后面的更新流程。否者,则不更新,直接进入等待状态。

默认情况下,这个函数永远返回 true 用来保证数据变化的时候 UI 能够同步更新。在大型项目中,你可以自己重载这个函数,通过检查变化前后属性和状态,来决定 UI 是否需要更新,能有效提高应用性能。

componentWillUpdate:

componentWillUpdate(nextProps, nextState)

在更新发生之前,使用这个方法可以作为执行准备更新的一个好机会。值得注意的是,这里不能调用 this.setState() 。

componentDidUpdate:

componentDidUpdate(prevProps, prevState)

该函数的执行时间是,组件更新完之后立即调用。由于这是组件已经更新完成,所以参数变成preProps和preState。

卸载(Unmount)

componentWillUnmount:

在一个组件被 卸载(unmounted) 和 销毁(destroyed) 之前立即被调用。 在此方法中执行任何必要的清理,例如使计时器无效,取消网络请求等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值