一、生命周期
组件的生命走起主要由3个部分组成:挂载、更新、移除
·挂载:组件被插入到DOM中。
·更新:组件被重新渲染,检查DOM是否应该刷新。
·移除:组件从DOM中移除。
a.挂载(初始化)
挂载又称为初始化,从调用getDefaultProps()开始到componentDidMount()结束。
- getInitialState()
在组件被挂载之前调用,状态化组件需要实现此方法,并返回初始的状态。 - componentWillMount()
在挂载发生之前立即被调用。 - componentDidMount()
在挂载结束之后马上被调用,需要DOM节点的初始化操作调用此方法
b.更新(运行)
当组件初始化完成之后,程序就开始正常运行起来,此时程序处于运行状态,在这个阶段涉及的常见方法如下;
- componentWillReceiveProps(object nextProps)
当一个挂载的组件接收到新的props时被调用,比较this.props和nextProps,然后使用this.setState来改变状态 - shouldComponentUpdate(object nextProps,object nextState)
当组件需要更新DOM时被调用。比较this.state和nextState确定是否需要跟新DOM,如果不需要更新则返回false - componentWillUpdata(object nextProps,object nextState)
在更新发生之前调用 - componentDidUpdata(object nextProps,object nextState)
在跟新发生之后调用
c.移除(销毁)
移除阶段又称为销毁阶段,碰到以下情况会触发组件的移除操作:系统遇到错误崩溃、用户主动退出、系统内存不足等。移除阶段涉及的常见方法如下。
- componentWillUnmount()
在组件移除和销毁之前被调用。如果需要清理某些数据,可以调用此方法。 - getDOMNode
DOM节点可以在任何挂载的组件上调用,用于获取一个指向它的DOM节点的引用。
forceUpdata()
在一些嵌套很深的组件的状态已经改变的时候,可以通过此方法调用,而不是调用this.setState()。