当前 RN 版本:0.49
操作环境:Windows 10
组件的生命周期展示了它从被创建到销毁的过程。无论在什么平台上,组件总是有它自己的生命周期,对于移动开发者来说生命周期肯定不陌生了。为了更好的管理组件的生命周期,我们需要了解在生命周期的哪些阶段执行了哪些方法。
生命周期的各个阶段
首先,我们通过一个流程图来大致了解组件的生命周期,然后根据流程一步一步走完组件的生命周期。
类被创建
static defaultProps@H_404_16@:在类被创建的时候执行这条语句,用来创建默认属性(关于属性,请参考 React Native 入门(五) - Props(属性))。
Mounting:组件挂载,已插入真实 DOM
constructor(props)@H_404_16@:构造方法,在组件挂载之前调用一次,一般在这里初始化 state 。
componentWillMount()@H_404_16@:在 render 之前调用,即便组件多次被渲染,也只会执行一次。
render()@H_404_16@:渲染组件并返回一个虚拟 DOM 。
componentDidMount()@H_404_16@:在 render 之后调用,在生命周期中该方法也只会执行一次。React 会使用 render 方法返回的虚拟 DOM 对象创建真实的 DOM 结构,可以在这个方法中读取 DOM 节点。
Updating:组件更新,正在被重新渲染
componentWillReceiveProps(object nextProps)@H_404_16@: 已加载完成的组件接收到新的 props 时调用。可以在这个方法里面更新 state 。
shouldComponentUpdate(object nextProps,object nextState)@H_404_16@:在接收到新的 props 或者 state,将要重新渲染之前调用。该方法在初始化渲染的时候不会调用,在使用 forceUpdate 方法的时候也不会。如果确定新的 props 和 state 不会导致组件更新,则此处应该返回 false,后三个方法将不会执行。
componentWillUpdate(object nextProps,object nextState)@H_404_16@:在组件接收到了新的 props 或者 state 即将进行重新渲染前调用,注意不要在此方法里再去更新 props 或者 state 。
render()@H_404_16@:重新渲染组件。
componentDidUpdate(object prevProps,object prevState)@H_404_16@:在组件的更新完成已经同步到 DOM 中之后立刻被调用。该方法不会在初始化渲染的时候调用。可以在这里访问并修改 DOM。
Unmounting:组件移除,已移出真实 DOM
合理地管理组件的生命周期,可以给编程带来很大的便利。比如在在 componentDidMount()@H_404_16@ 中注册一些监听,在
componentWillUnmount()@H_404_16@ 中执行一些清理,移除监听、定时器等。
原文链接:https://www.f2er.com/react/302453.html