成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

React生命周期

Dongjie_Liu / 1391人閱讀

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

前言

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

一.掛載或卸載過程

1.組件初始化

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

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

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

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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/84135.html

相關(guān)文章

  • React專題:生命周期

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

    Hanks10100 評(píng)論0 收藏0
  • 捋一捋React生命周期

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

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

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

    wendux 評(píng)論0 收藏0
  • React組件生命周期詳解

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

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

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

    Yumenokanata 評(píng)論0 收藏0
  • React組件生命周期

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

    mgckid 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Dongjie_Liu

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<