了解React组件的生命周期react
React流程状态图ajax
注意:流程状态图为使用React.createClass方法的生命周期segmentfault
ajax
获取后台数据渲染时,通常将调用ajax
方法放在componentDidMount
中,这样能够先渲染虚拟dom
再展现数据,当再次调用ajax
数据改变时,dom
内数据会再次渲染,而不用再次加载整个dom
。若是在该dom要根据条件只经过ajax
获取一次数据,则能够将调用ajax
的方法放在componentWillMount
。jQuery
,异步请求也可使用fetch
等componentWillUpdate
中,尽可能避免使用setState()
或setProps()
方法。若无条件判断状况下使用setState()
或setProps()
,会致使死循环,一样componentDidUpdate
中使用setState()
若无条件限制也会致使死循环。shouldComponentUpdate
能够对是否进行渲染的条件判断,可以做为性能调优的手段,避免无心义渲染。componentWillReceiveProps
能够经过nextProps
获取新传入的参数值,例如:nextProps.operationType
获取operationTypesetState()
的周期为:componentWillMount
、componentDidMount
、componentWillReceiveProps
、componentDidUpdate
this.state
的值经过构建列表树后总结补充:dom
setState
不会当即生效,要通过render
过程才能真正改变state
值return
时调用方法setState
,会引发shouldComponentUpdate
周期,而此时componentDidMount
周期已完成。React组件生命周期过程说明
React组件生命周期
React数据获取为何必定要在componentDidMount里面调用?异步