1. 創(chuàng)建階段
getDefaultProps: 處理this.props默認(rèn)值业汰。 在React.createClass()被調(diào)用。
2.實(shí)例化階段
React.render被啟動(dòng)之后
1>getInitialState : 初始化組件的state值需频,其返回值會(huì)賦值給組件的this.state屬性宜鸯。 getinitialstate 一它只被調(diào)用一次,在組件被掛載時(shí)調(diào)用皂甘。
2>componentWillMount: 組件要被掛載時(shí)這個(gè)函數(shù)被調(diào)用斧散,業(yè)務(wù)邏輯處理均放在這里供常,如對(duì)state的操作。 render 在組件生命周期里被多次調(diào)用鸡捐,我們一般會(huì)把只需要執(zhí)行一次的代碼
3>render: 根據(jù)state的值栈暇,渲染并返回一個(gè)虛擬DOM
4>componentDidMount:一旦你的組件已經(jīng)運(yùn)行了 render 函數(shù),并實(shí)際將組件渲染到了 DOM 中箍镜,componentDidMount 就會(huì)被調(diào)用源祈。我們可以在這兒做任何需要做的 DOM 操作,已經(jīng)任何需要依賴于組件已經(jīng)實(shí)際存在于 DOM 之后才能做的事情, 例如渲染一個(gè)圖表色迂。你可以通過(guò)調(diào)用 this.getDOMNode 在內(nèi)部訪問(wèn)到 DOM 節(jié)點(diǎn)香缺。
state:組件的屬性 主要用來(lái)存儲(chǔ)組件自身需要的數(shù)據(jù),每次數(shù)據(jù)的更新都是通過(guò)修改state屬性的值歇僧。ReactJS內(nèi)部監(jiān)聽state屬性的變化图张,一旦誕生變化,就會(huì)主動(dòng)觸發(fā)組件的render方法進(jìn)行更新虛擬的DOM诈悍。
虛擬DOM:將真實(shí)的DOM結(jié)構(gòu)隱射成一個(gè)JSON數(shù)據(jù)結(jié)構(gòu)埂淮。
3.更新階段
用戶操作之后,
1>componentWillReceiveProps: 該方法發(fā)生在this.props被修改写隶,或者父組件調(diào)用 setProps()方法之后。
調(diào)用this.setState()方法完成對(duì)state的修改讲仰。
2>shouldComponentUpdate: 用來(lái)攔截新的props或state慕趴。根據(jù)邏輯來(lái)判斷是否需要更新。
3>componentWillUpdate: shouldComponentUpdatae返回true時(shí)候執(zhí)行。組件中的render(虛擬DOM結(jié)構(gòu))方法進(jìn)行更新冕房。
4>componentDidUpdate:
4.銷毀階段
componentWillUnmount: