React的生命周期

初始化阶段(intialization)

  • constructor():
    实现组件对象状态state函数的初始化,包括props, state,在这个生命周期的函数中,一般做一些state的初始化。类比Vue中的created

挂载阶段(mounting)

  • componentWillMount():
    在DOM元素挂载前,此时state的变化不会引起DOM的变化,因为DOM元素还没有被渲染挂载。类比Vue中的beforeMount
  • render():
    DOM元素的渲染,这里是组件的渲染过程,这个渲染过程当DOM中的元素发生变化的时候就会调用
  • componentDidMount():
    组件挂载完毕,此时所有DOM均挂载到页面上。类比Vue中的mounted

更新阶段(Updation)

  • 先明确下react组件更新机制。setState引起的state更新或父组件重新render引起的props更新,更新后的state和props相对之前无论是否有变化,都将引起子组件的重新render。

  • shouldComponentUpdate: 在更新过程中时 如果这个函数返回false的话 页面本身是不会更新的

  • componentWillReceiveProps:当子组件绑定父组件的属性发生更改的时候,会触发这个生命周期函数

  • componentWillUpdate: 当组件开始更新之前调用的生命周期函数

  • render: 每次更新后都会重新进行渲染

  • componentDidUpdate: 组件更新完毕

更新阶段的钩子函数

  • shouldComponentUpdate
  • componentWillReceiveProps: 这个会返回新旧变更的参数
  • componentWillUpdate
  • componentDidUpdate
    如果是父组件发生更新的时候, shouldComponentUpdate一定会执行,但是下面的步骤不一定会执行,因为如果这个时候shouldComponentUpdate 返回值为false的话,其实并不会重新刷新页面参数

Tips:

  • React生命周期的几个作用:

1、constructor: 一般做组件内部状态的初始化

2、componentWillMount: 一般ajax数据的拉取,定时器的启动等等

3、componentDidMount: 有一些操作是要在DOM加载完成后在执行的,可以写在componentDidMount里面

4、componentWillUnmount: 一般卸载页面后有一些定时器的清除等工作,用于页面的优化设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值