参考文献
React Native 中组件的生命周期:这个是带图详解版本
首先上图
componentWillMount()
:组件加载。
componentWillMount
会在组件render()
之前执行,永远只执行一次。类似于Android的onCreat
componentDidMount()
:组件加载。
这个方法在组件加载之后执行,这时组件已经生成了对应的DOM结构,可以通过geDOMNode()
来进行访问。如果你想和其他JavaScript框架一起使用,可以在这个方法中执行setTimeout, setInterval或者发送AJAX请求等操作(防止异部操作阻塞UI)。
componentWillReceiveProps(object nextProps)
:组件更新。
这个方法在初始化render时不会被调用。旧的props可以通过this.props来获取。在这个函数内调用this.setState()方法不会增加一次新的render.
boolean shouldComponentUpdate(object nextProps, object nextState)
:组件更新。
返回一个布尔值。在组件接收到新的props或者state时被执行。在初始化时或者使用forceUpdate
时不被执行。可以在你确认不需要更新组件时使用。
componentWillUpdate(object nextProps, object nextState)
:组件更新.
在组件接收到新的props或者state但还没有render时被执行。在初始化时不会被执行。
一般用在组件发生更新之前。
componentDidUpdate(object prevProps, object prevState)
:组件更新.
在组件完成更新后立即执行。在初始化时不会被执行。一般会在组件完成更新后被使用。例如清除notification文字等操作。
componentWillUnmount()
:组件Unmounting.
在组件从DOM unmount后立即执行.主要用来执行一些必要的清理任务。例如清除setTimeout等函数,或者任意的在componentDidMount创建的DOM元素。