<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 淺入 React 生命周期相關(二)更新生命周期

          2019-6-13    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里


          更新階段分為兩部分 父組件執行 render 或者調用 this.setState。

          componentWillReceiveProps
          大部分網上教程為外部 props 發生改變才觸發 componentWillReceiveProps,其實不是,當父組件進入 render 時,無論子組件的 props 發沒發生改變,都會執行該生命周期函數。 
          函數參數有一個,為 nextProps,為將要新的 props。 
          值得注意的是,在整個更新階段的生命周期函數,只有在此函數內可以調用 this.setState 方法,當然其他也可以調用,但是會造成死循環 。

          shouldComponentUpdate
          該函數需要返回值,如沒定義則默認返回 true。當返回值為 true 時,進入 componentWillIpdate ,如為 false ,則什么都不發生。所以說這是一個可以進行 React 性能優化的地方。函數參數有兩個 nextProps 和 nextState。我們需用做的就是在 this.props、this.state、nextState、nextProps之間進行對比,來解決重復渲染的目的。

          componentWillUpdate
          如果 shouldComponentUpdate 返回值為 true 的話,生命周期會進入該函數中。在這個函數中我們可以根據實際情況做一些事情,但是不能調用 this.setState。

          render
          在更新階段的 render 來講一講 調和 過程。 render 返回的 JSX 標簽會保存在內存中,react 會通過 diff 算法來計算出最小化改動完成差異的更新。diff 是逐層遞歸比較,首先比較類型是否一樣。如果發現 <div>和 <span> 的差別的話,react 會選擇直接放棄之前的 dom 元素, 重新渲染。所以說即使是更新階段的調和過程,也會觸發組件的掛載、卸載階段。

          componentDidUpdate
          在這個時候已經更新完 dom 結構,可以重新使用 dom 操作。

          總結
          總體來說更新的生命周期要做的最重要的事情就是性能優化,減少重復渲染次數。 
          在這個方面已經有很多成熟的解決方法了,在我的博客中也會介紹如何定制更新階段的生命周期函數。 
          在使用上,最最重要的一點就是不要在除了 componentWillReceiveProps 之外的其他更新階段生命周期函數內調用 this.setState。

          相關鏈接:

          淺入 React 生命周期相關(一)掛載生命周期
          --------------------- 

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          精品国产乱码久久久久久郑州公司| 久久久久久免费一区二区三区| 中文精品99久久国产| 久久人人爽人人爽人人片av麻烦| 久久成人国产精品免费软件| 国产亚洲精品自在久久| 久久久久综合国产欧美一区二区| 色偷偷偷久久伊人大杳蕉| 国产精品熟女福利久久AV| 久久香综合精品久久伊人| 国产精品青草久久久久福利99| 亚洲精品无码久久千人斩| 99久久精品费精品国产| 人妻久久久一区二区三区| 久久性精品| 国产精品gz久久久| 精品久久久久久中文字幕人妻最新| 韩国三级中文字幕hd久久精品| 一本久久a久久精品亚洲| 久久久久久一区国产精品| 久久精品国产91久久综合麻豆自制 | 久久亚洲国产中v天仙www| 免费久久人人爽人人爽av| 国产精品99久久久久久董美香| 一本久久知道综合久久| 久久婷婷是五月综合色狠狠| 麻豆精品久久精品色综合| 日本精品久久久久久久久免费| 国产精品久久久久…| 久久久久人妻精品一区二区三区| 亚洲精品99久久久久中文字幕| 久久99精品久久久久久水蜜桃 | 色综合久久久久| 99久久99久久精品免费看蜜桃| 亚洲va久久久噜噜噜久久男同| 久久人人爽人人爽人人片AV高清 | 久久电影网一区| 久久国产成人精品麻豆| 97久久超碰成人精品网站| 久久国产精品-国产精品| 99久久精品无码一区二区毛片|