成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

React生命周期

Dongjie_Liu / 1352人閱讀

摘要:前言組件的生命周期可以分為掛載,渲染和卸載這幾個階段。因此,可以把生命周期分成兩類當(dāng)組件在掛載或卸載時。因此,當(dāng)方法返回的時候,組件不再向下執(zhí)行生命周期方法。父節(jié)點改變當(dāng)父節(jié)點改變,傳入子組件的發(fā)生改變,組件會依次調(diào)用子組件會重新渲染。

前言

React組件的生命周期可以分為掛載,渲染和卸載這幾個階段。
當(dāng)渲染后的組件需要更新時,我們會重新去渲染組件,直至卸載。
因此,可以把React生命周期分成兩類:
1.當(dāng)組件在掛載或卸載時。
2.當(dāng)組件接收新的數(shù)據(jù)時,即組件更新時。

一.掛載或卸載過程

1.組件初始化

static defaultProps保證this.props有初始值
this.state初始值
componentWillMount會在render之前調(diào)用,componentDidMount會在render之后調(diào)用,分別代表了渲染前后的時刻,
都只執(zhí)行一次。
render之后,我們在componentDidMount中執(zhí)行setState,組件會再次render,不過在初始化過程就渲染了兩次組件
,這并不是一件好事,但實際情況是,有些場景不得不需要setState,比如計算組件的位置或?qū)捀叩?,就不得不讓組件
先渲染,更新必要的信息后,再次渲染。

2.組件的卸載:
componentWillMount,我們常常會執(zhí)行一些清理方法,如事件回收或是清除定時器。

    componentWillMount() {
        this.setState({
            a: this.state.a + 1    // 先執(zhí)行willMount,a + 1,再執(zhí)行render,componentDidMount
        });
        console.log("will" + this.state.a);
    }
    componentDidMount() {
        console.log("did" + this.state.a);
    }
    render() {
        console.log("render" + this.state.a);
        return (
            
{ this.state.a }
{ this.props.maxLoops }
); }
二.數(shù)據(jù)更新過程

1.數(shù)據(jù)更新過程:
更新過程指的是父組件向下傳遞props或組件自身執(zhí)行setState方法時發(fā)生的一系列更新動作。
如果組件自身state更新了,那么會依次執(zhí)行shouldComponentUpdate,componentWillUpdate,render和componentDidUpdate。
shouldComponentUpdate是一個特別的方法,它接受需要更新的props和state,讓開發(fā)者增加必要的條件判斷,
讓其在需要時更新,不需要時不更新。因此,當(dāng)方法返回false的時候,組件不再向下執(zhí)行生命周期方法。
2.父節(jié)點props改變
當(dāng)父節(jié)點this.state改變,傳入子組件的this.props發(fā)生改變,組件會依次調(diào)用componentWillReceiveProps,
shouldComponentUpdate,componentWillUpdate,render,componentDidUpdate.
子組件會重新渲染。
3.如果組件是由父組件更新props而更新的,那么在shouldComponentUpdate之前會執(zhí)行componentWillReceiveProps方法,此方法可以作為React在props傳入后,渲染之前setState機會,在此方法中setState是不會二次渲染的。

componentWillReceiveProps(nextProps) {
        console.log("willreceive");
        console.log(nextProps);
        if (nextProps.id === 4) {
            this.setState({
                bb: 1000
            })
        }
    }
    shouldComponentUpdate(nextProps, nextState) {
        console.log("should update");
        if (nextState.bb === 16) {
            return false;
        }
        return true;
    }
    componentWillUpdate(nextProps, nextState) {
        console.log("will update");
    }
    componentDidUpdate(prevProps, prevState) {
        console.log("did update");
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84135.html

相關(guān)文章

  • React專題:生命周期

    摘要:而生命周期鉤子,就是從生到死過程中的關(guān)鍵節(jié)點。異步渲染下的生命周期花了兩年時間祭出渲染機制。目前為這幾個生命周期鉤子提供了別名,分別是將只提供別名,徹底廢棄這三個大活寶。生命周期鉤子的最佳實踐是在這里初始化。 本文是『horseshoe·React專題』系列文章之一,后續(xù)會有更多專題推出來我的 GitHub repo 閱讀完整的專題文章來我的 個人博客 獲得無與倫比的閱讀體驗 生命周期...

    Hanks10100 評論0 收藏0
  • 捋一捋React生命周期

    摘要:卸載階段組件卸載和銷毀老版生命周期之前的生命周期初始化階段涉及個鉤子函數(shù)這些方法會在組件初始化的時候被調(diào)用,只跟實例的創(chuàng)建有關(guān)。 前言:React 的版本從 v15 到 v16.3 ,再到v16.4,現(xiàn)在最新的版本是 v16.8了。其中最大的變化可能是React Hooks的加入,而最令人困惑的卻是它的生命周期,新舊生命周期函數(shù)混雜在一起,難免會讓許多新來者有很多困惑。所以這一篇我們來...

    MobService 評論0 收藏0
  • ReactV16.3,即將更改的生命周期

    摘要:我們目前的計劃是為不安全生命周期引入別名,和。從現(xiàn)在開始,只有新的生命周期名稱將起作用。從版本開始,更新以響應(yīng)更改的推薦方法是使用新的靜態(tài)生命周期。 注釋:本文是根據(jù)React的官方博客翻譯而成(文章地址:https://reactjs.org/blog/2018...)。主要講述了React之后的更新方向,以及對之前生命周期所出現(xiàn)的問題的總結(jié),之后的React將逐步棄用一些生命周期和...

    wendux 評論0 收藏0
  • React組件生命周期詳解

    摘要:組件生命周期構(gòu)造方法是對類的默認(rèn)方法,通過命令生成對象實例時自動調(diào)用該方法。該生命周期可以發(fā)起異步請求,并。后廢棄該生命周期,可以在中完成設(shè)置渲染組件是一個組件必須定義的生命周期,用來渲染。該生命周期內(nèi)可以進行。 React組件生命周期 constructor( ) 構(gòu)造方法 constructor是ES6對類的默認(rèn)方法,通過 new 命令生成對象實例時自動調(diào)用該方法。并且,該方法是...

    learn_shifeng 評論0 收藏0
  • React.js 小書 Lesson20 - 更新階段的組件生命周期

    摘要:所以對于組件更新階段的組件生命周期,我們簡單提及并且提供一些資料給大家。這里為了知識的完整,補充關(guān)于更新階段的組件生命周期你可以通過這個方法控制組件是否重新渲染。大家對這更新階段的生命周期比較感興趣的話可以查看官網(wǎng)文檔。 React.js 小書 Lesson20 - 更新階段的組件生命周期 本文作者:胡子大哈本文原文:http://huziketang.com/books/react...

    Yumenokanata 評論0 收藏0
  • React組件生命周期

    摘要:組件生命周期此文章適合之前的版本,,添加了一些新的生命周期函數(shù),同時準(zhǔn)備廢棄一些會造成困擾的生命周期函數(shù)。每個生命周期階段調(diào)用的鉤子函數(shù)會略有不同。 React組件生命周期 此文章適合 React@17 之前的版本,[email protected],添加了一些新的生命周期函數(shù),同時準(zhǔn)備廢棄一些會造成困擾的生命周期函數(shù)。所有如果在React@17 發(fā)布之前,這篇文章還是適用的。新的生命周期請看官...

    mgckid 評論0 收藏0

發(fā)表評論

0條評論

Dongjie_Liu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<