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

資訊專欄INFORMATION COLUMN

React組件生命周期

mgckid / 1745人閱讀

摘要:組件生命周期此文章適合之前的版本,,添加了一些新的生命周期函數(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)看官網(wǎng) blog 文章 React v16.3.0: New lifecycles and context API。

前言

組件會(huì)隨著組件的 propsstate 改變而發(fā)生變化,它的 DOM 也會(huì)有相應(yīng)的變化。

一個(gè)組件就是一個(gè)狀態(tài)機(jī):對(duì)于特定的輸入,它總會(huì)返回一致的輸出。

React組件提供了生命周期鉤子函數(shù)去響應(yīng)組件不同時(shí)刻的狀態(tài),組件的生命周期如下:

實(shí)例化

存在期

銷毀期

鉤子函數(shù)是我們重點(diǎn)關(guān)注的地方,下面來詳細(xì)了解下生命周期下的鉤子函數(shù)調(diào)用順序和作用。每個(gè)生命周期階段調(diào)用的鉤子函數(shù)會(huì)略有不同。下面的圖片或許對(duì)你有幫助。

可以查看 CodePen 在線 Demo React 生命周期

實(shí)例化

首次調(diào)用組件時(shí),有以下方法會(huì)被調(diào)用(注意順序,從上到下先后執(zhí)行):

getDefaultProps

這個(gè)方法是用來設(shè)置組件默認(rèn)的 props,組件生命周期只會(huì)調(diào)用一次。但是只適合 React.createClass 直接創(chuàng)建的組件,使用 ES6/ES7 創(chuàng)建的這個(gè)方法不可使用, ES6/ES7 可以使用下面方式:

// es7
class Component {
  static defaultProps = {}
}
// 或者也可以在外面定義es6
// Compnent.defaultProps

getInitialState

設(shè)置state初始值,在這個(gè)方法中你已經(jīng)可以訪問到 this.props。 getInitialState 只適合 React.createClass 使用。使用 ES6 初始化state方法如下:

class Component extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      render: true,
    }
  }
}

或者這樣

class Component extends React.Component{
  state = {
      render: true
  }
  render(){return false;}
}

componentWillMount

改方法會(huì)在組件首次渲染之前調(diào)用,這個(gè)是在 render 方法調(diào)用前可修改 state 的最后一次機(jī)會(huì)。這個(gè)方法很少用到。

render

這個(gè)方法以后大家都應(yīng)該會(huì)很熟悉,JSX 通過這里,解析成對(duì)應(yīng)的虛擬 DOM,渲染成最終效果。格式大致如下:

class Component extends React.Component{
  render(){
    return (
       
) } }

?

componentDidMount

這個(gè)方法在首次真實(shí)的 DOM 渲染后調(diào)用(僅此一次)當(dāng)我們需要訪問真實(shí)的 DOM 時(shí),這個(gè)方法就經(jīng)常用到。如何訪問真實(shí)的 DOM 這里就不想說了。當(dāng)我們需要請(qǐng)求外部接口數(shù)據(jù),一般都在這里處理。

存在期

實(shí)例化后,當(dāng)props或者state發(fā)生變化時(shí),下面方法依次被調(diào)用:

componentWillReceiveProps

沒當(dāng)我們通過父組件更新子組件 props 時(shí)(這個(gè)也是唯一途徑),這個(gè)方法就會(huì)被調(diào)用。

componentWillReceiveProps(nextProps){}

shouldComponentUpdate

字面意思,是否應(yīng)該更新組件,默認(rèn)返回 true。當(dāng)返回 false 時(shí),后期函數(shù)就不會(huì)調(diào)用,組件不會(huì)在次渲染。

shouldComponentUpdate(nextProps,nextState){}

componentWillUpdate

字面意思組件將會(huì)更新,propsstate 改變后必調(diào)用。

render

跟實(shí)例化時(shí)的render一樣,不多說

componentDidUpdate

這個(gè)方法在更新真實(shí)的 DOM 成功后調(diào)用,當(dāng)我們需要訪問真實(shí)的 DOM 時(shí),這個(gè)方法就也經(jīng)常用到。

銷毀期

銷毀階段,只有一個(gè)函數(shù)被調(diào)用:

componentWillUnmount

沒當(dāng)組件使用完成,這個(gè)組件就必須從DOM中銷毀,此時(shí)該方法就會(huì)被調(diào)用。當(dāng)我們?cè)诮M件中使用了 setInterval,那我們就需要在這個(gè)方法中調(diào)用 clearInterval。如果手動(dòng)使用了 addEventListener 綁定了事件,也需要解綁事件。

參考文章

An Introduction to Life Cycle Events in?React.js

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

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

相關(guān)文章

  • 捋一捋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
  • 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組件生命周期詳解

    摘要:組件生命周期構(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 深入系列4:組件生命周期

    摘要:因?yàn)槭巧钊胂盗形恼?,本文不?huì)仔細(xì)介紹每個(gè)生命周期方法的使用,而是會(huì)重點(diǎn)講解在使用組件生命周期時(shí),經(jīng)常遇到的疑問和錯(cuò)誤使用方式。父組件發(fā)生更新導(dǎo)致的組件更新,生命周期方法的調(diào)用情況同上所述。 文:徐超,《React進(jìn)階之路》作者授權(quán)發(fā)布,轉(zhuǎn)載請(qǐng)注明作者及出處 React 深入系列4:組件的生命周期 React 深入系列,深入講解了React中的重點(diǎn)概念、特性和模式等,旨在幫助大家加深...

    warnerwu 評(píng)論0 收藏0
  • 不了解一下React16.3之后的新生命周期?

    摘要:本文主要介紹之后的生命周期。該方法有兩個(gè)參數(shù)和返回值為對(duì)象不需要返回整體,把需要改變的返回即可。必須有一個(gè)返回值,返回的數(shù)據(jù)類型可以有。此生命周期主要用于優(yōu)化性能。最后,說明一點(diǎn)這三個(gè)生命周期在未來版本中會(huì)被廢棄。 React16.3.0開始,生命周期進(jìn)行了一些變化。本文主要介紹React16.3.0之后的生命周期。 React16.3.0之前生命周期: 16版本之前的react組件的...

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

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

0條評(píng)論

閱讀需要支付1元查看
<