亚洲乱淫 I 香蕉成人av I 哺乳期av I 欧美播放器 I 成人私密视频 I 福利小导航 I 男人都懂的网站 I 日韩av网址在线观看 I 91超碰成人 I 色噜噜久久 I av无限看 I 国产综合在线播放 I 亚洲综合免费观看高清完整版 I 双腿张开被9个男人调教 I 欧美裸体xxx I 在线午夜电影 I 日韩女女同性aa女同 I 成人91 I 日本中文字幕免费 I 91久久久国产精品 I 免费观看黄色大片 I 伊人天堂视频 I 欧美日韩国产999 I 操人黄色 I 久久久久久性高 I 亚洲综合熟女久久久30p I 视频二区最新视频 I 亚洲国产成人二区 I 岛国黄色专区 I 亚洲www. I 欧美特黄视频在线观看 I 黄色三级软件 I 国产9页 I 久久动漫av I 免费看18禁止观看黄网站 I 青青久在线视观看视 I 欧美一夜爽爽爽爽爽爽 I 波多野结衣vs黑人 I 国产最爽乱淫视频免费

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

來源:互聯網

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


【資料圖】

2、所謂生命周期,就是一個對象從開始生成到最后消亡所經歷的狀態,理解生命周期,是合理開發的關鍵。

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

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

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

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

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

8、可以在這里做一些業務初始化操作,也可以設置組件狀態。

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

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

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

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

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

14、這個函數也是只被調用一次。

15、這個函數之后,就進入了穩定運行狀態,等待事件觸發。

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

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

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

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

20、否者,則不更新,直接進入等待狀態。

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

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

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

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

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

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

27、 componentDidUpdate 調用了 render() 更新完成界面之后,會調用 componentDidUpdate() 來得到通知,其函數原型如下: void componentDidUpdate( object prevProps, object prevState ) 因為到這里已經完成了屬性和狀態的更新了,此函數的輸入參數變成了 prevProps 和 prevState。

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

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

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

標簽:

推薦

財富更多》

動態更多》

熱點

主站蜘蛛池模板: 久久福利小视频 | 日本一区二区三区四区在线观看 | 亚洲精品无码不卡久久久久 | 日韩在线免费视频 | 国产精品人妻久久毛片高清无卡 | 最近中文字幕免费观看 | 亚洲精品成人片在线播放 | 国产成人精品自在线导航 | 久久99精品免费一区二区 | 97亚洲熟妇自偷自拍另类图片 | а√天堂资源地址在线8观看 | 欧美日本一 | 国产成人av大片大片在线播放 | 国产无遮挡吃胸膜奶免费看 | 精品一区二区av天堂 | 202丰满熟女妇大 | 天堂在线www天堂中文在线 | 在教室伦流澡到高潮hnp视频 | 亚洲黄色一区二区 | 久久精品成人免费国产 | 伊人狠狠色丁香婷婷综合 | 国产免费看黄 | 国产婷婷综合 | 日本系列有码字幕中文字幕 | 久久精品成人免费国产片桃视频 | 亚洲2021av天堂手机版 | 狼人伊人久久 | 午夜精品久久久久9999高清 | 亚洲天堂高清视频 | 日本黄xxxxxxxxx100 | 91亚洲精选| 亚洲爆乳无码一区二区三区 | 久久99国产精品久久99 | 欧美性猛交xxxxx按摩欧美 | 欧美色xxxx | www.youjizz中国| 日韩av播放器 | www.嫩草 | 野花社区视频在线观看 | 伊人性 | 99视频免费| 91视频h| 人妻中文无码就熟专区 | 成人毛片在线观看 | a√天堂资源在线 | 无码国产69精品久久久久同性 | 成人精品一区日本无码网 | 国产精品久久久久久久久久久久午夜片 | 黄色三级片毛片 | 国产亚洲欧美日韩亚洲中文色 | 成熟丰满熟妇xxxxx丰满 | 国产99视频精品免费视频36 | 国产干干干 | 高清孕妇性孕交hd xx | 国产精品久久久久久婷婷天堂 | 一本色道久久综合亚洲精品不卡 | 又黄又爽又色的免费软件 | 秋霞毛片少妇激情免费 | 91精品一本久道久久丁香狠狠躁 | a天堂在线观看视频 | 一区二区亚洲视频 | tube欧美巨大44 | 精品无码人妻被多人侵犯av | 在线午夜视频 | 99久久免费视频在线观看 | 国产高清视频一区三区 | 99久久国产亚洲高清观看 | 91探花福利精品国产自产在线 | 亚洲a综合一区二区三区 | 波多野结衣av在线无码中文观看 | 丝袜美腿精品国产一区 | 久久綾合久久鬼色88 | 97色成人综合网站 | 日韩精品在线观看网站 | 小视频在线观看免费 | 巨大巨粗巨长 黑人长吊 | 日日摸夜夜添无码无码av | 亚洲精品在线国产 | 日韩深夜在线 | 青青草国产免费无码国产精品 | 日韩黄网站 | 国产精品久久在线 | 国产人成无码视频在线软件 | 性调教炮机捆绑爆浆喷水 | 午夜理伦三级理论 | 久久久久一区二区 | 狠狠色丁香久久婷婷综合蜜芽五月 | 一区二区三区视频在线 | 亚洲国产成人最新精品 | 日产av在线播放 | 亚洲日韩精品无码专区网站 | 日韩专区第一页 | 国产三级在线观看播放 | 三级av网| 国产欧美一区在线观看 | 99精品人妻无码专区在线视频区 | 一本一道波多野结衣一区二区 | 天天插夜夜 | 国内精品久久久久影院蜜芽 |