999精品国内在线观看视频-日韩 中文字幕 在线视频-伊人久久中文字幕在线-少妇熟女激情一区二区三区-久久精品国产亚洲av水果派-91成人在线视频网-91久久久在线免费-国产综合一区二区三区-一区,二区av在线,亚洲天堂中文字幕91,欧美偷拍亚洲变态另类,国产精品久久久久久久hd

react生命周期有哪些_react生命周期 世界觀速訊

來源:互聯(lián)網(wǎng)

1、概述 就像 Android 開發(fā)中的 View 一樣,React Native(RN) 中的組件也有生命周期(Lifecycle)。


【資料圖】

2、所謂生命周期,就是一個對象從開始生成到最后消亡所經(jīng)歷的狀態(tài),理解生命周期,是合理開發(fā)的關鍵。

3、RN 組件的生命周期整理如下圖: 如圖,可以把組件生命周期大致分為三個階段: 第一階段:是組件第一次繪制階段,如圖中的上面虛線框內,在這里完成了組件的加載和初始化; 第二階段:是組件在運行和交互階段,如圖中左下角虛線框,這個階段組件可以處理用戶交互,或者接收事件更新界面; 第三階段:是組件卸載消亡的階段,如圖中右下角的虛線框中,這里做一些組件的清理工作。

4、 生命周期回調函數(shù) 下面來詳細介紹生命周期中的各回調函數(shù)。

5、 getDefaultProps 在組件創(chuàng)建之前,會先調用 getDefaultProps(),這是全局調用一次,嚴格地來說,這不是組件的生命周期的一部分。

6、在組件被創(chuàng)建并加載候,首先調用 getInitialState(),來初始化組件的狀態(tài)。

7、 componentWillMount 然后,準備加載組件,會調用 componentWillMount(),其原型如下: void componentWillMount() 這個函數(shù)調用時機是在組件創(chuàng)建,并初始化了狀態(tài)之后,在第一次繪制 render() 之前。

8、可以在這里做一些業(yè)務初始化操作,也可以設置組件狀態(tài)。

9、這個函數(shù)在整個生命周期中只被調用一次。

10、 componentDidMount 在組件第一次繪制之后,會調用 componentDidMount(),通知組件已經(jīng)加載完成。

11、函數(shù)原型如下: void componentDidMount() 這個函數(shù)調用的時候,其虛擬 DOM 已經(jīng)構建完成,你可以在這個函數(shù)開始獲取其中的元素或者子組件了。

12、需要注意的是,RN 框架是先調用子組件的 componentDidMount(),然后調用父組件的函數(shù)。

13、從這個函數(shù)開始,就可以和 JS 其他框架交互了,例如設置計時 setTimeout 或者 setInterval,或者發(fā)起網(wǎng)絡請求。

14、這個函數(shù)也是只被調用一次。

15、這個函數(shù)之后,就進入了穩(wěn)定運行狀態(tài),等待事件觸發(fā)。

16、 componentWillReceiveProps 如果組件收到新的屬性(props),就會調用 componentWillReceiveProps(),其原型如下: void componentWillReceiveProps( object nextProps ) 輸入?yún)?shù) nextProps 是即將被設置的屬性,舊的屬性還是可以通過 this.props 來獲取。

17、在這個回調函數(shù)里面,你可以根據(jù)屬性的變化,通過調用 this.setState() 來更新你的組件狀態(tài),這里調用更新狀態(tài)是安全的,并不會觸發(fā)額外的 render() 調用。

18、如下: componentWillReceiveProps: function(nextProps) { this.setState({ likesIncreasing: nextProps.likeCount >this.props.likeCount }); } shouldComponentUpdate 當組件接收到新的屬性和狀態(tài)改變的話,都會觸發(fā)調用 shouldComponentUpdate(...),函數(shù)原型如下: boolean shouldComponentUpdate( object nextProps, object nextState ) 輸入?yún)?shù) nextProps 和上面的 componentWillReceiveProps 函數(shù)一樣,nextState 表示組件即將更新的狀態(tài)值。

19、這個函數(shù)的返回值決定是否需要更新組件,如果 true 表示需要更新,繼續(xù)走后面的更新流程。

20、否者,則不更新,直接進入等待狀態(tài)。

21、 默認情況下,這個函數(shù)永遠返回 true 用來保證數(shù)據(jù)變化的時候 UI 能夠同步更新。

22、在大型項目中,你可以自己重載這個函數(shù),通過檢查變化前后屬性和狀態(tài),來決定 UI 是否需要更新,能有效提高應用性能。

23、 componentWillUpdate 如果組件狀態(tài)或者屬性改變,并且上面的 shouldComponentUpdate(...) 返回為 true,就會開始準更新組件,并調用 componentWillUpdate(),其函數(shù)原型如下: void componentWillUpdate( object nextProps, object nextState ) 輸入?yún)?shù)與 shouldComponentUpdate 一樣,在這個回調中,可以做一些在更新界面之前要做的事情。

24、需要特別注意的是,在這個函數(shù)里面,你就不能使用 this.setState 來修改狀態(tài)。

25、這個函數(shù)調用之后,就會把 nextProps 和 nextState 分別設置到 this.props和 this.state 中。

26、緊接著這個函數(shù),就會調用 render() 來更新界面了。

27、 componentDidUpdate 調用了 render() 更新完成界面之后,會調用 componentDidUpdate() 來得到通知,其函數(shù)原型如下: void componentDidUpdate( object prevProps, object prevState ) 因為到這里已經(jīng)完成了屬性和狀態(tài)的更新了,此函數(shù)的輸入?yún)?shù)變成了 prevProps 和 prevState。

28、 componentWillUnmount 當組件要被從界面上移除的時候,就會調用 componentWillUnmount(),其函數(shù)原型如下: void componentWillUnmount() 在這個函數(shù)中,可以做一些組件相關的清理工作,例如取消計時器、網(wǎng)絡請求等。

29、 總結 到這里,RN 的組件的完整的生命都介紹完了,在回頭來看一下前面的圖,就比較清晰了,把生命周期的回調函數(shù)總結成如下表格: 生命周期 調用次數(shù) 能否使用 setSate() getDefaultProps 1(全局調用一次) 否 getInitialState 1 否 componentWillMount 1 是 render >=1 否 componentDidMount 1 是 componentWillReceiveProps >=0 是 shouldComponentUpdate >=0 否 componentWillUpdate >=0 否 componentDidUpdate >=0 否 componentWillUnmount 1 否 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

本文到此分享完畢,希望對大家有所幫助。

標簽:

推薦

財富更多》

動態(tài)更多》

熱點

91人人妻人人澡人人爽人人精品小-久久国产色av-午夜爽爽久久久毛片-欧美日韩色免费 | eeuss鲁片一区二区三区-日韩久久久久精品无…-久久综合色中文字幕-久久综合九色综合网 | 日韩精品成人亚洲欧美在线-日韩av高清在线不卡免费观看-日韩av电影观看-国产乱子伦一区二区内容 森泽佳奈中文字幕在线-人妻丰满少妇久久久久久久久-久久熟妇人妻一区二区-av中文字幕网 | 日韩av在线www.-巨乳人妻日韩中文字幕-五月的婷婷六月得丁香-日韩 欧美 亚洲在线 | 熟女吧一区二区三区-狠狠综合久久久久尤物-99久久99九九精品免费-久久亚洲女同中文字幕人妻 | 日韩熟女中文网-欧美一区二区三区网-国产精品18禁久久久久久白浆-久久的爱久久的你在线免费观看 97久久精品人人人妻人人1-久久这里只有精品18岁-日韩成人自拍视频在线-人妻少妇被猛烈插入中文字幕 | 久久精品熟女俱乐部-国产一区二区三区福利-好好热在线观看视频-国产又粗又长又大又圆视频 | 99精品久久99久久久久胖女人-国产精品99久久久久久女同女-精品久久久久乱色熟女影视-日韩视频 亚洲 | eeuss鲁片一区二区三区-日韩久久久久精品无…-久久综合色中文字幕-久久综合九色综合网 | 精品一区 福利导航-精品丰满人妻av-日韩av电影成人-日韩欧美在线一区二区观看 | 国产精品久久久久久久久银杏-92精品一区二区三区-久久久久久久精品一区二区三区-久久热精品18国产 | 国产精品6999成人免费视频-精品久久久久久久久久人妻-国产成人 av在线-日韩中文字幕欧美国产 | 2020免费中文字幕在线观看-好看不卡的中文字幕-蜜桃视频一区二区三区四区av-91人人妻操人妻 | 91熟女大合集-天天日天天干天天搞天天射-久久精品人视频-日韩在线播放不卡的 | 久久成人中文字幕在线观看-欧美日韩精品久久免费观看-制服丝袜高跟美腿日韩av在线-亚洲人妻熟女av | 国产麻豆成人av精品网站-亚洲欧美日本韩国乱片-97久久碰人妻一区二区-日韩精品中文字幕在线视频 神马午夜久久久av-中文日韩av在线免费观看-日韩欧美一级一区二区-国产激情在线视频免费 | 久久久久精品国产久久-国产麻豆精品**一二三-国产久久草视频在线-91久久精品国产熟女内射 | 精品一区二区三区四区五区在线观看-亚洲欧美日韩成人在线激情网-丰满人妻 中文字幕-亚洲五月综合在线婷婷 | 久久久天天日天天爱-五月激情四射婷婷姐姐-麻豆国产免费观看-成人大片之男人的天堂 | 一本一道久久a久久综合蜜桃-国产精品久久久久久久久夜色-国产精品99成人免费视频-国产一区二区大片在线播放 | 超碰在线免费观看97-麻豆av一区二区三区免费在线观看-久久国产精品国产色婷婷-中文字幕成人熟女视频 | 熟女阿一区二区三区四区视频-91久久国语露脸精品国产高跟-国产精品久久久成人999-国产91精品啪 | 人妻少妇91精品一区麻豆-99久久精品国产精品久久-久久久久久大秀视频人妻精品-久久久久久久久国内精品影视 | 91久久精品国产亚洲-国产在线一级特黄aa大片-巨尻中文字幕在线观看-成人国产av精品入口在线 | 中文字幕av色一区二区三区-乱妇乱女熟妇熟女专区-91康先生在线视频-日韩一区二区三区入口 | 日韩一卡二卡三卡四卡五卡国产精品视频-99干视频在线观看-一本色道久久88综合日韩精品-99热在线观看完整版 | 麻豆成人激情视频-日韩av在线免费在线观看-久久九九热这里只有精品-91欧美熟妇第一页 | 久久久91人妻精品一区二区三区网址-国产免费观看久久黄av涩av-日韩激情小说在线-久久99综合精品国产毛片 | 日韩激情第一页-操老女人91妇女老熟女-97精品人妻一区二区三-久久久久精品亚洲中文字幕 | 欧美精品久久久久久一二三黑人-亚洲视频中文字幕另类小说综合网-另类av一区在线-亚洲综合久久一区二区三区蜜月 | 精品久久久久久中文字幕2020-亚洲av色图在线观看-久久久精品欧美日韩-麻豆成人一级在线观看 | 2012中文字幕在线视频免费-久久99爱免费视频视频-成人欧美一区二区三区男男-九九热免费精彩视频 国产人妻一区二区三区网站-人妻激情偷一区二区三区-国产一区二区三区三区在线观看-丁香花啪啪啪啪啪啪啪五月天网站 | 蜜臀av性久久久久av蜜-岛国人妻中文字幕-国产又大又长又粗又猛又爽又黄-久久久久久人精品免费看 久久久久久欧美精品-欧美日韩一区二区三区高清视频-日韩爱爱免费网-超碰在线成人免费人妻 | 五月婷婷激情综合少妇-亚洲久久久婷婷-久久久精品人妻一区二区三区蜜桃-久久熟女人妻一区二区 | 久久久久久成人av-人妻一区精品区二-久久久亚洲一区tv视频-美女国产精品久久久久久 | 精品久久久久久少妇-欧亚日韩熟女狠狠操激情午夜在线-国产91av在线视频-久久精品国产91久久久久 人妻熟女第118页-五月激情熟女网-看日韩性视频aaaaa-999久久成人综合精品 | 精品久久久久久少妇-欧亚日韩熟女狠狠操激情午夜在线-国产91av在线视频-久久精品国产91久久久久 人妻熟女第118页-五月激情熟女网-看日韩性视频aaaaa-999久久成人综合精品 | 国产成人精品视频网站-国产三级男人的天堂-蜜臀aⅴ人妻一区二区三区-国产麻豆剧传媒精品国产av | 日韩欧美资源一区二区三区-欧美 日韩 亚洲 第一页-高潮av一区二区三区-中文字幕 日韩二区 | 超碰caoporn免费-精品人妻一区二区三区蜜桃乌龙-国产一区二区三区御姐-精品久久久久久久久中文字幕 | 日韩精品中文字幕组-国产精品美女久久久久久久久久-日韩精品熟女中文字幕-伊人色婷婷综合网 |