在React-Native開(kāi)發(fā)中,組件的生命周期和我們密不可切辛慰,了解生命周期利于我們觀察組件的變化過(guò)程区匠。組件生命周期可以先簡(jiǎn)單分為三個(gè)階段:實(shí)例化、存在和銷毀帅腌。
1驰弄、實(shí)例化階段
getDefaultProps
用于設(shè)置初始化默認(rèn)props屬性。
getInitialState
用于設(shè)置初始化默認(rèn)state屬性狞膘,ES5一般使用的語(yǔ)法。在ES6中推薦使用state初始在constructor中實(shí)現(xiàn)什乙。
componentWillMount
渲染之前調(diào)用挽封,主要是在組件被首次渲染之前做些操作,比如要在首次渲染之前修改一些初始state臣镣,并且this.setState不會(huì)多次觸發(fā)渲染辅愿,整個(gè)生命周期執(zhí)行一次。
Render
組件的渲染函數(shù)忆某,返回JSX或其他組件点待,用于開(kāi)始渲染生成虛擬DOM。
componentDidMount
渲染之后調(diào)用一次弃舒,此時(shí)組件已經(jīng)首次加載出來(lái)了癞埠。一般這里適合進(jìn)行組件的初始化后的一些操作,比如發(fā)起網(wǎng)絡(luò)請(qǐng)求等等聋呢。
2苗踪、存在階段
componentWillReceiveProps
如果組件接收到新的props會(huì)調(diào)用,帶有參數(shù)nextProps削锰,是即將被設(shè)置的屬性通铲,這時(shí)的this.props看還可以表示舊的屬性,因此可以根據(jù)兩者的變化來(lái)選擇性地執(zhí)行相應(yīng)的函數(shù)器贩。
shouldComponentUpdate
如果組件接收到新props和改變state后會(huì)調(diào)用颅夺,shouldComponentUpdate帶有兩個(gè)參數(shù):nextProps 和 nextState,都表示即將被設(shè)置的屬性和狀態(tài)蛹稍。通過(guò)返回的bool類型判定組件是否需要更新渲染吧黄,默認(rèn)返回true,常用于性能優(yōu)化減少不必要的頁(yè)面渲染唆姐。
componentWillUpdate
如果shouldComponentUpdate返回true后將調(diào)用此方法稚字,即更新渲染之前調(diào)用,表示組件即將被更新渲染。值得一提的是胆描,這個(gè)函數(shù)里面瘫想,你不能使用this.setState來(lái)修改狀態(tài)。
componentDidUpdate
更新渲染之后被調(diào)用昌讲,此函數(shù)中組件UI已經(jīng)更新渲染完成国夜,帶有參數(shù)prevProps和prevState,分別代表了渲染結(jié)束組件的參數(shù)和狀態(tài)短绸。
3车吹、銷毀階段
componentWillUnmount
組件移除之前被調(diào)用,通常是做清理操作醋闭,比如取消定時(shí)器窄驹。
-END-