国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

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

    2019-6-13    seo達人

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


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

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

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

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

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

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

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

    相關鏈接:

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

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.dzxscac.cn

    存檔

    主站蜘蛛池模板: 中文字幕+乱码+中文字幕明步| 亚洲狠狠干| 亚洲免费av一区二区| 亚洲日本va午夜在线影院| 性色tv| 成人极品视频| 老色鬼永久精品网站| 成年人黄色| 国产专区一区二区| 亚洲国产高清在线观看视频| av中文无码韩国亚洲色偷偷| 18禁一区二区| 18禁无遮挡羞羞污污污污免费| 国产免费mv大全视频网站| 国产黄色av网站| 日韩大尺度在线观看| 精品无码人妻一区二区三区不卡| 国产一区二| 免费观看一级视频| 少妇人妻偷人精品无码视频新浪 | 西西人体做爰大胆gogo| 国产三级网站| japanese24hdxxxx中文字幕| 白嫩少妇激情无码| 精品国产自在现线看久久| 久久国产精品免费| 日韩免费高清视频网站| 久久久99精品免费观看| 国产精品午夜在线观看体验区 | 亚洲在线国产日韩欧美| 久久久亚洲欧洲日产国产成人无码 | 日韩激情无码免费毛片| 东京热无码人妻一区二区av| 日韩精品大片| 91成品人影院| 精品欧洲av无码一区二区三区| 秋霞午夜无码鲁丝片午夜精品 | 91麻豆精品| 女人囗交吞精囗述| 国产精品一区二区三区专区| 日韩精品无码一区二区视频|