国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

10分鐘理解React生命周期

這篇具有很好參考價(jià)值的文章主要介紹了10分鐘理解React生命周期。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

學(xué)習(xí)React,生命周期很重要,我們了解完生命周期的各個(gè)組件,對寫高性能組件會(huì)有很大的幫助.

一、簡介

React?/ri??kt/?組件的生命周期指的是組件創(chuàng)建銷毀過程中所經(jīng)歷的一系列方法調(diào)用。這些方法可以讓我們在不同的時(shí)刻執(zhí)行特定的代碼,以滿足組件的需求。

React 的生命周期可以分為三個(gè)階段:掛載階段、更新階段卸載階段。每個(gè)階段都有對應(yīng)的生命周期方法,如下所示:

二、生命周期三個(gè)階段

掛載階段

  • constructor()/k?n?str?kt?(r)/?構(gòu)造函數(shù),最先被執(zhí)行,我們通常在構(gòu)造函數(shù)里初始化state對象或者給自定義方法綁定this
  • static getDerivedStateFromProps()static getDerivedStateFromProps(nextProps, prevState),這是個(gè)靜態(tài)方法,當(dāng)我們接收到新的屬性想去修改state,可以使用getDerivedStateFromProps
  • render()?/?rend?(r)/?render函數(shù)是純函數(shù),只返回需要渲染的東西,不應(yīng)該包含其它的業(yè)務(wù)邏輯,可以返回原生的DOM、React組件、Fragment、Portals、字符串和數(shù)字、Boolean和null等內(nèi)容
  • componentDidMount():組件裝載之后調(diào)用,此時(shí)可以獲取到DOM節(jié)點(diǎn)并操作,比如對canvas,svg的操作,服務(wù)器請求,訂閱都可以寫在這個(gè)里面,但是記得在componentWillUnmount中取消訂閱。
    componentWillUnmount中取消訂閱。

1、在?componentWillUnmount?生命周期方法中,我們可以執(zhí)行一些清理工作,比如取消訂閱或者清除定時(shí)器等。

取消訂閱是指在組件卸載之前,將之前添加的事件監(jiān)聽或者數(shù)據(jù)訂閱取消掉,以避免內(nèi)存泄漏和無效的數(shù)據(jù)處理。

具體實(shí)現(xiàn)方法取決于你所使用的訂閱方式。如果你使用的是 React Context API 或者 Redux 等狀態(tài)管理庫,則可以在?componentWillUnmount?方法中取消訂閱。例如,使用 React Context API 訂閱狀態(tài)更新的代碼可能如下所示:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      value: props.initialValue,
    };
    this.unsubscribe = props.subscribe(this.handleValueChange);
  }

  componentWillUnmount() {
    this.unsubscribe();
  }

  handleValueChange = (newValue) => {
    this.setState({ value: newValue });
  };

  render() {
    return (
      <div>
        <span>Current value: {this.state.value}</span>
      </div>
    );
  }
}

在上面的代碼中,unsubscribe?方法是一個(gè)用于取消訂閱的函數(shù),它在組件創(chuàng)建時(shí)通過?props.subscribe?方法添加訂閱,然后在組件卸載時(shí)通過?componentWillUnmount?方法進(jìn)行取消訂閱。

2、如果你使用的是普通的 DOM 事件監(jiān)聽器或者 WebSocket 等瀏覽器原生 API,那么你需要在組件卸載時(shí)手動(dòng)移除事件監(jiān)聽或者關(guān)閉 WebSocket 連接等。

例如,使用?addEventListener?添加事件監(jiān)聽器的代碼可能如下所示:

class MyComponent extends React.Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  componentDidMount() {
    document.addEventListener('click', this.handleClick);
  }

  componentWillUnmount() {
    document.removeEventListener('click', this.handleClick);
  }

  handleClick(event) {
    console.log('Clicked!', event.target);
  }

  render() {
    return <div>Click anywhere to log the target element.</div>;
  }
}

在上面的代碼中,我們在組件掛載時(shí)通過?addEventListener?方法添加了一個(gè)?click?事件監(jiān)聽器,然后在組件卸載時(shí)通過?removeEventListener?方法移除該監(jiān)聽器。這樣可以確保在組件卸載時(shí)不會(huì)再接收到無效的事件通知。

更新階段

  • static getDerivedStateFromProps() /?st?t?k/?/d??ra?vd/?/ste?t/?/pr?ps/ 此方法在更新個(gè)掛載階段都可能會(huì)調(diào)用
  • shouldComponentUpdate()?shouldComponentUpdate(nextProps, nextState),有兩個(gè)參數(shù)nextPropsnextState,表示新的屬性和變化之后的state,返回一個(gè)布爾值,true表示會(huì)觸發(fā)重新渲染,false表示不會(huì)觸發(fā)重新渲染,默認(rèn)返回true,我們通常利用此生命周期來優(yōu)化React程序性能
  • render()??更新階段也會(huì)觸發(fā)此生命周期
  • getSnapshotBeforeUpdate()?getSnapshotBeforeUpdate(prevProps, prevState),這個(gè)方法在render之后,componentDidUpdate之前調(diào)用,有兩個(gè)參數(shù)prevPropsprevState,表示之前的屬性和之前的state,這個(gè)函數(shù)有一個(gè)返回值,會(huì)作為第三個(gè)參數(shù)傳給componentDidUpdate,如果你不想要返回值,可以返回null,此生命周期必須與componentDidUpdate搭配使用
  • componentDidUpdate()?componentDidUpdate(prevProps, prevState, snapshot),該方法在getSnapshotBeforeUpdate方法之后被調(diào)用,有三個(gè)參數(shù)prevPropsprevState,snapshot,表示之前的props,之前的state,和snapshot。第三個(gè)參數(shù)是getSnapshotBeforeUpdate返回的,如果觸發(fā)某些回調(diào)函數(shù)時(shí)需要用到 DOM 元素的狀態(tài),則將對比或計(jì)算的過程遷移至getSnapshotBeforeUpdate,然后在?componentDidUpdate中統(tǒng)一觸發(fā)回調(diào)或更新狀態(tài)。

卸載階段

  • componentWillUnmount()?當(dāng)組件被卸載或者銷毀了就會(huì)調(diào)用,我們可以在這個(gè)函數(shù)里去清除一些定時(shí)器,取消網(wǎng)絡(luò)請求,清理無效的DOM元素等垃圾清理工作

這些生命周期方法按照順序依次被調(diào)用。在掛載階段,組件被創(chuàng)建并插入到 DOM 樹中。在更新階段,組件的 props 或者 state 發(fā)生改變時(shí)會(huì)觸發(fā)更新,從而重新渲染組件。最后,在卸載階段,組件被從 DOM 樹中移除并銷毀。

每個(gè)生命周期方法都有不同的作用,可以用來實(shí)現(xiàn)各種需求,比如在組件掛載時(shí)進(jìn)行初始化工作、在組件更新時(shí)進(jìn)行數(shù)據(jù)處理或者在組件卸載時(shí)進(jìn)行清理工作等。

?

10分鐘理解React生命周期

?文章來源地址http://www.zghlxwxcb.cn/news/detail-415575.html

?

?

?

?

?

?

?
?
?

到了這里,關(guān)于10分鐘理解React生命周期的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【React】: React的生命周期

    【React】: React的生命周期

    生命周期的每個(gè)階段總是伴隨著一些方法的調(diào)用,這些方法就是生命周期的鉤子函數(shù) 鉤子函數(shù)的作用:為開發(fā)人員在不同操作階段提供了十幾 只有 類組件 才有生命周期 ? 生命周期的圖片: ?同時(shí)有: ?編寫以下代碼,從而驗(yàn)證constructor,render,componentDidMount的順序: 在開發(fā)者

    2024年02月08日
    瀏覽(18)
  • 【react】react生命周期鉤子函數(shù):

    【react】react生命周期鉤子函數(shù):

    一、生命周期概念: 生命周期:簡單來說就是一個(gè)事物從出生到消亡的過程就是生命周期,在React中的生命周期,就是組件從創(chuàng)建、掛載到頁面再到卸載組件的過程。 意義:生命周期有助于理解組件運(yùn)行方式、完成復(fù)雜組件功能、分析組件中間問題產(chǎn)生的原因等。 生命周期鉤子函數(shù)

    2024年02月14日
    瀏覽(26)
  • react 生命周期講解

    當(dāng)涉及到React組件的創(chuàng)建、更新和銷毀過程時(shí),React的生命周期方法起到了至關(guān)重要的作用。正確地理解和使用這些生命周期方法可以幫助我們在不同的階段執(zhí)行特定的操作,從而實(shí)現(xiàn)更好的組件控制和優(yōu)化。 1. 掛載階段(Mounting) 在組件被創(chuàng)建并添加到DOM中時(shí),以下生命周

    2024年02月07日
    瀏覽(66)
  • 淺談React生命周期

    在React中,組件的生命周期是指組件從創(chuàng)建到銷毀的整個(gè)過程中所經(jīng)歷的一系列階段。React 16.3版本之前,組件的生命周期可以分為三個(gè)階段:掛載階段(Mounting)、更新階段(Updating)和卸載階段(Unmounting)。但是自React 16.3版本起,官方推出了新的生命周期方法,將原有的一

    2024年02月10日
    瀏覽(19)
  • React 生命周期新舊對比

    React 生命周期新舊對比

    React16.4版本之后使用了新的生命周期,它使用了一些新的生命周期鉤子(getDerivedStateFromProps、getSnapshotBeforeUpdate),并且即將廢棄老版的3個(gè)生命周期鉤子(componentWillMount、componentWillReceiveProps、componentWillUpdate)。 因?yàn)镽eact 16引入了 Fiber機(jī)制 ,把 同步 的渲染流程進(jìn)化為了 異步

    2024年02月11日
    瀏覽(22)
  • React 組件生命周期

    React 組件生命周期

    Mounting(掛載):已插入真實(shí) DOM Updating(更新):正在被重新渲染 Unmounting(卸載):已移出真實(shí) DOM Mounting階段叫掛載階段,伴隨整個(gè)虛擬DOM的聲明。它里面有四個(gè)小的生命周期函數(shù),分別是: constructor:初始化屬性 componentWillMount:在組件即將被掛載到頁面的時(shí)候執(zhí)行 render:頁面s

    2024年02月10日
    瀏覽(48)
  • react---生命周期

    react---生命周期

    目錄 1.新舊生命周期對比 2.常用的3個(gè)鉤子函數(shù) 3.生命周期(舊) 4.生命周期(新) React 中為我們提供了一些生命周期鉤子函數(shù),讓我們能在 React 執(zhí)行的重要階段,在鉤子函數(shù)中做一些事情。 1.新舊生命周期對比 新的生命周期 對于 舊的生命周期 ,廢棄(即將廢棄)了 三個(gè)

    2024年02月08日
    瀏覽(17)
  • react 生命周期方法

    react 生命周期方法

    每個(gè)組件都包含 “生命周期方法”,你可以重寫這些方法,以便于在運(yùn)行過程中特定的階段執(zhí)行這些方法。你可以使用此生命周期圖譜作為速查表。在下述列表中,常用的生命周期方法會(huì)被加粗。其余生命周期函數(shù)的使用則相對罕見。 掛載 當(dāng)組件實(shí)例被創(chuàng)建并插入 DOM 中時(shí)

    2024年02月13日
    瀏覽(27)
  • React生命周期(新-舊)

    React生命周期(新-舊)

    ① 是什么? 組件 從創(chuàng)建 到掛載頁面上運(yùn)行,再到組件不用時(shí) 卸載 的過程,叫生命周期,只有 類組件才有生命周期 。 ②作用 學(xué)習(xí)組件的生命周期,有助于理解組件的運(yùn)行方式,完成更復(fù)雜的組件更能、分析組件錯(cuò)誤原因等。 ① 是什么? 生命周期的每個(gè)階段總是伴隨著一

    2024年02月11日
    瀏覽(28)
  • React的生命周期詳細(xì)講解

    React的生命周期詳細(xì)講解

    所謂的React生命周期,就是指組件從被創(chuàng)建出來,到被使用,最后被銷毀的這么一個(gè)過程。而在這個(gè)過程中,React提供了我們會(huì)自動(dòng)執(zhí)行的不同的鉤子函數(shù),我們稱之為生命周期函數(shù)。**組件的生命周期大致分為三個(gè)階段:組件掛載階段,組件更新階段,組件銷毀卸載階段 **

    2024年02月03日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包