React 组件声明生命周期
在执行 React.createClass后执行
-
创建阶段:
getDefaulfProps : 处理props的默认值
在执行ReactDOM.render后执行
-
实例化阶段:
-
getInitakState:得到初始化组件的state值,返回值会赋赋值给this.state
-
componentWillMount:业务逻辑处理,对state进行操作
-
render:根据state值,渲染并返回一个虚拟的DOM
-
compoentDidMount:根据虚拟的DOM创建一个真实的DOM结构,组件内部可以通过this.getDOMNode( )来获取当前组件的节点
state
:组件的属性,用来存储组件自身需要的数据,每次数据的更新都是通过修改state属性的值,ReactJS内部会监听state属性的变化,一旦发生变化,就会主动出发组件的render方法来更新虚拟DOM结构
虚拟DOM: 将真实的DOM结构映射横一个Json数据结构
-
getInitakState:得到初始化组件的state值,返回值会赋赋值给this.state
主要发生在用户操作之后或父组件有更新的时候,此时会根据用户的操作行为进行相应的结构调整
-
更新阶段:
- componentWillReceoveProps : 该方法发生在this.props被修改或父组件调用setProps( )方法之后,调用this.setState方法来完成对state的修改
- shouldComponentUpdate:用来拦截新的props或state,根据逻辑来判断是否需要更新,如果需要返回true 否则返回false
- componentWillUpdate: shouldComponentUpdate 返回true的时候执行,组件将更新
-
render:(if算法更新需要更新的)根据state值,渲染并返回一个虚拟的DOM
-
componentDidUpdate: 组件更新完毕,通常在这里做一些DOM操作
-
销毁阶段:
- componetWillUnmmont:销毁时调用,通常做一些取消时间绑定,移除虚拟DOM中对应的组件数据结构,销毁一些无效的定时器等工作