您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)react的生命周期函數(shù)介紹,文章內(nèi)容質(zhì)量較高,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
注:getDefaultProps這種定義方式是用在你定義組件用的是React.createClass方式的
如果使用的是es6的語法,例如用的是class 組件名 extends React.Component的話,就不要用
getDefaultProps這種方式去定義props了,而是應(yīng)該用 static propTypes ={}來定義,這樣就不會(huì)有警了
設(shè)置默認(rèn)的props,也可以用dufaultProps設(shè)置組件的默認(rèn)屬性. ---》設(shè)置
注:與getDefaultProps的區(qū)別在于前者設(shè)置默認(rèn)的 props,后者設(shè)置初始的state在使用es6的class語法時(shí)是沒有這個(gè)鉤子函數(shù)的,可以直接在constructor中定義 this.state。此時(shí)可以訪問this.props
注:組件初始化時(shí)只調(diào)用,以后組件更新不調(diào)用,整個(gè)生命周期只調(diào)用一次,此時(shí)可以修改state。
注:react最重要的步驟,創(chuàng)建虛擬dom,進(jìn)行diff算法,更新dom樹都在此進(jìn)行。此時(shí)就不能更改state了。
注:組件渲染之后調(diào)用,只調(diào)用一次。可以在此請(qǐng)求數(shù)據(jù)
注:組件初始化時(shí)不調(diào)用,組件接受新的props時(shí)調(diào)用。
注:react性能優(yōu)化非常重要的一環(huán)。組件接受新的state或者props時(shí)調(diào)用,我們可以設(shè)置在此對(duì)比前后兩個(gè)props和state是否相同,如果相同則返回false阻止更新,因?yàn)橄嗤膶傩誀顟B(tài)一定會(huì)生成相同的dom樹,這樣就不需要?jiǎng)?chuàng)造新的dom樹和舊的dom樹進(jìn)行diff算法對(duì)比,節(jié)省大量性能,尤其是在dom結(jié)構(gòu)復(fù)雜的時(shí)候
注:組件初始化時(shí)不調(diào)用,只有在組件將要更新時(shí)才調(diào)用,此時(shí)可以修改state
注:組件渲染
注:組件初始化時(shí)不調(diào)用,組件更新完成后調(diào)用,此時(shí)可以獲取dom節(jié)點(diǎn)。
componentWillUnmount()
注:組件將要卸載時(shí)調(diào)用,一些事件監(jiān)聽和定時(shí)器需要在此時(shí)清除。
以上就是react的生命周期函數(shù)介紹,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊,感謝各位的閱讀。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。