每个组件都是一个状态机,对于特定的输入总会给出一致的输出。
组件的生命周期分为三部分:实例化、存在期和销毁时
实例化
第一次调用组件时,会以如下的顺序调用生命周期函数:
getDefaultProps
这个方法用于设置组件默认的的props,整个生命周期执行一次,该方法只能用于React.createClass方法创建的组件,es6/es7可用如下方式创建
class Test React.Component{
static defaultProps = {
}
}
getInitialState
这个方法用于初始化state,同样只适用于React.createClass方法 创建的组件,es6/es7可使用如下方式
this.state = {
}
componentWillMount
这个方法是组件初次渲染之前最后可以修改state的地方,在该方法中调用this.setState不会立即更新state,会等到render执行完之后才会更新。
rebder
在这里jsx会解析成对应的虚拟dom
树。
componentDidMount
该方法说明组件首次渲染完成,可以在这里进行接口数据的请求,或者获取组件的真实dom
存在期
componentWillReceiveProps
当父组件传递的props发生变化是,这个方法就会调用。
shouldComponentUpdate
此方法在props或state发生变化时触发,可以根据需要来决定组件是否需要重新渲染。componentWillUpdate
组件更新之前调用
render
渲染组件componentDidUpdate
更新完成之后调用
销毁时
componentWillUnmount
当组件销毁时,调用此函数,可用于完成所有的清空和销毁工作,比如:定时器、监听事件。