react生命周期分为三中转态:初始转态,更新状态以及卸载状态
*****
### 初始转态:
***1、getDefaultProps()***
~~~
此时可设置初始(默认)的props
~~~
***2、getInitialState()***
~~~
在es6语法中已移除,改为在constructor设置初始的state值
~~~
***3、componentWillMount()***
~~~
在组件渲染前调用,此时dom还未挂载在html中,此函数整个生命周期只调用一次,可修改state
~~~
***4、 render()***
~~~
组件渲染时调用,虚拟dom的创建及更新都会在此时进行
~~~
***5、componentDidMount()***
~~~
组件渲染完成后调用,此时可获取dom节点,该函数整个生命周期只调用一次,可修改state
~~~
### 更新状态
***6、componentWillReceiveProps(nextProps)***
~~~
组件接受到新的props时调用,初始化时不调用
~~~
***7、shouldComponentUpdate(nextProps, nextState)***
~~~
组件接受新的props或state时调用,判断是否需要更新,接受的两个参数分别为即将更新的props和state状态值,可与this.porps与this.state(即更新前的状态)对比,该函数回返回一个boolean类型,默认为true,即更新dom树
~~~
***8、componentWillUpdata(nextProps, nextState)***
~~~
组件将要更新时调用,接受的两个参数分别为即将更新的props和state状态值。不可在此时更改state,不然会导致无限循环更新state,从而崩溃报错
~~~
***9、render()***
~~~
更新完成后再次渲染
~~~
***10、componentDidUpdate()***
~~~
更新完成后调用,同样可获取dom节点,初始化时不调用
~~~
### 卸载状态
***11、componentWillUnmount()***
~~~
组件将要卸载时调用,可以在此时清除定时器与一些监听事件
~~~