美文网首页React NativeiOS Developertom
React Native学习笔记之组件生命周期

React Native学习笔记之组件生命周期

作者: 小黑_Coder | 来源:发表于2017-01-23 12:18 被阅读83次

React Native学习笔记之组件生命周期

单一组件生命周期

首先看一下RN组件生命周期简略说明图

组件生命周期简图
  • 组件初始化获取基本参数,全局只调用一次getDefaultProps严格的说不是组件生命周期的一部分。因为属性往往是在内部事先设置好的,或者父组件传递过来。
  • 组件生命周期的第一阶段(初始化)
    • 初始化件的状态值getInitialState
    • 组件即将被安装componentWillMount
    • 对组件进行渲染render
    • 组件安装完毕componentDidMount
  • 组件生命周期的第二阶段(组件运行期间的状态)
    • 内部props改变
      • 状态改变state
      • 是否更新状态shouldComponentUpdate在此方法里面不要使用setState修改状态,不然会造成死循环
      • 组件即将更新componentWillUpdate
      • 对组件进行渲染render
      • 组件更新完成componentDidUpdate
    • 外部props改变
      • 组件即将接受属性改变componentWillReceiveProps
      • 是否更新组件shouldComponentUpdata
      • 组件即将更新componentWillUpdate
      • 对组件进行渲染render
      • 组件更新完成componentDidUpdate
  • 组件生命周期的第三阶段(组件的卸载)
    • 组件即将卸载componentWillUnmount在此方法里面经常会做一些取消网络请求,销毁定时器等操作。
    • 卸载完成

子父组件相互嵌套生命周期

  • 组件生命周期的第一阶段(初始化)
    • 父组件先执行getInitialState,componentWillMount
    • 这个时候就会触发子组件执行getInitialState,componentWillMount,render,componentDidMount
    • 此时父组件在执行render,componentDidMount
  • 组件生命周期的第二阶段(组件运行期间的状态)
    • 无论是内部还是外部触发更新,从上面分析可知组件会执行到shouldComponentUpdata如果返回的是true则会接着执行componentWillUpdate子组件如果需要更新,会触发子组件的更新,直到子组件执行完componentDidUpdate,父组件才执行render,componentDidUpdate
  • 组件生命周期的第三阶段(组件的卸载)
    • 由上面的分析不难看出,父组件在执行初始化和更新时,如果设计到子组件,在渲染前会先将子组件相关操作执行完毕,然后渲染自己,卸载也是如此
    • 在父组件执行componentWillUnmount完之后会触发子组件的卸载,直到子组件卸载完成再卸载自己

相关文章

网友评论

    本文标题:React Native学习笔记之组件生命周期

    本文链接:https://www.haomeiwen.com/subject/rpdabttx.html