中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站頁(yè)面做多寬百度不能搜的十大禁詞

網(wǎng)站頁(yè)面做多寬,百度不能搜的十大禁詞,wordpress 添加評(píng)論功能,小白學(xué)做網(wǎng)站買什么書(shū)概述 React組件的生命周期可以分為三個(gè)主要階段: 掛載階段(Mounting):組件被創(chuàng)建,插入到DOM 樹(shù)的過(guò)程; 更新階段(Updating):是組件中 props 以及state 發(fā)生變化時(shí)&#…

概述

React組件的生命周期可以分為三個(gè)主要階段:
掛載階段(Mounting):組件被創(chuàng)建,插入到DOM 樹(shù)的過(guò)程;
更新階段(Updating):是組件中 props 以及state 發(fā)生變化時(shí),重新render渲染視圖過(guò)程;
卸載階段(Unmounting):是DOM被從虛擬DOM樹(shù)移除的過(guò)程;
每個(gè)階段都伴隨著一系列的生命周期方法,這些方法為開(kāi)發(fā)者提供了在類式組件不同階段執(zhí)行操作不同代碼的機(jī)會(huì),使開(kāi)發(fā)人員能夠更好的處理業(yè)務(wù)交互。

1、類式組件中的生命周期

React 16.3 之前的鉤子
請(qǐng)?zhí)砑訄D片描述

React 16.3 之后的生命周期鉤子
請(qǐng)?zhí)砑訄D片描述

2、React 16.3 版本之前的 生命周期

這個(gè)版本的 React 有非常明確的生命周期,能夠清晰的知道各個(gè)階段的鉤子函數(shù),跟VUE2.0的非常相似,
主要鉤子函數(shù)有如下:

2.1、掛載階段:

constructor(props)

類的構(gòu)造方法,在組件中被創(chuàng)建時(shí)候調(diào)用,用于初始化 state 和 綁定事件處理函數(shù),但是這個(gè)時(shí)候不能調(diào)用 this.setState(), 因?yàn)榇藭r(shí)組件還沒(méi)有掛載到 DOM上;

componentWillMount()

將要插入回調(diào),DOM結(jié)構(gòu)生成前要執(zhí)行的操作

render()

用于插入虛擬DOM 回調(diào),將虛擬DOM 渲染到視圖上的過(guò)程

componentDidMount()

虛擬 DOM插入回調(diào)已經(jīng)完成,即視圖已經(jīng)渲染完成,頁(yè)面真實(shí)DOM已經(jīng)加載完,此階段可以進(jìn)行 數(shù)據(jù)請(qǐng)求、訂閱或手動(dòng)更改DOM

2.2、更新階段:

每次在進(jìn)行 this.setState() 操作,或者 子組件得到的 props 更新時(shí)候,都會(huì)執(zhí)行此階段的鉤子函數(shù),還有就是執(zhí)行 forceUpdate() 時(shí)候 同樣也會(huì)執(zhí)行此階段函數(shù);

componentsWillUpdate()

視圖將要更新前的回調(diào)操作;用于數(shù)據(jù)格式化等操作

render()

根據(jù)傳入的 新state 或者 新 props 進(jìn)行重新渲染視圖

componentDidUpdate()

視圖重新更新渲染已經(jīng)完成, 可以在這里執(zhí)行依賴于DOM的操作,如重新獲取DOM尺寸或執(zhí)行網(wǎng)絡(luò)請(qǐng)求

2.3、卸載階段

componentWillUnmount()

組件被移除回調(diào),這個(gè)階段可以處理一些定時(shí)任務(wù),事件卸載、取消網(wǎng)絡(luò)請(qǐng)求等操作

3、React 16.3 版本之后的生命周期

3.1、掛載階段:

constructors(props)

類的構(gòu)造方法,在組件被創(chuàng)建時(shí)調(diào)用。用于初始化state和綁定事件處理函數(shù),創(chuàng)建 ref。注意,constructor中不能調(diào)用this.setState(),因?yàn)榇藭r(shí)組件還未掛載到DOM上。

constructor(props) {console.log('==constructor==')// 獲取上級(jí)傳入 propssuper(props)// 聲明 state 屬性  countthis.state = {count: 0}}

static getDerivedStateFromProps(props, state)

React 16.3引入的靜態(tài)方法,在組件創(chuàng)建時(shí)和每次更新前調(diào)用。用于根據(jù)props更新state。如果不希望更新state,則返回null
如:

   static getDerivedStateFromProps(props, state) {// 根據(jù)props更新stateconsole.log('==props=')console.log('==state=', state)//   表示給 count 設(shè)置初始值最終會(huì)渲染為 99return {count: 99}}

static 靜態(tài)方法中是獲取不到當(dāng)前組件的實(shí)例的,不能進(jìn)行 this.XX 操作 調(diào)用 如:this.fetch()

render()

渲染方法,根據(jù)組件的props和state返回React元素。render方法必須是一個(gè)純函數(shù),不能修改組件的狀態(tài)或執(zhí)行副作用。

componentDidMount()

組件掛載到DOM后調(diào)用。是執(zhí)行副作用(如數(shù)據(jù)獲取、訂閱或手動(dòng)更改DOM)。

3.2、更新階段

在組件的props或state發(fā)生變化時(shí),React會(huì)重新渲染組件

static getDerivedStateFromProps(props, state)

同掛載階段,用于在更新前根據(jù)props更新state。 同上 返回 null 時(shí)候,不會(huì)更是視圖;

shouldComponentUpdate(nextProps, nextState)

返回一個(gè)布爾值,決定組件是否應(yīng)該更新。默認(rèn)情況下返回true,但可以通過(guò)此方法優(yōu)化性能,避免不必要的渲染,通過(guò)對(duì)比新舊數(shù)據(jù)判斷是否需要執(zhí)行更新視圖操作。

render()

同掛載階段,根據(jù)更新后的props和state重新渲染組件。

getSnapshotBeforeUpdate(prevProps, prevState)

在最近一次渲染輸出(提交到DOM)之前調(diào)用,可以捕獲一些信息(如滾動(dòng)位置),這些信息將作為參數(shù)傳遞給componentDidUpdate。

componentDidUpdate(prevProps, prevState, snapshot)

組件更新后被調(diào)用??梢栽谶@里執(zhí)行依賴于DOM的操作,如重新獲取DOM尺寸或執(zhí)行網(wǎng)絡(luò)請(qǐng)求

3.3 卸載階段

componentWillUnmount()

在組件卸載及銷毀之前調(diào)用。是執(zhí)行清理操作(如取消網(wǎng)絡(luò)請(qǐng)求、清除定時(shí)器)的理想位置。

類式組件生命周期鉤子函數(shù)變化:

請(qǐng)?zhí)砑訄D片描述

4、在函數(shù)式組件中如何模擬生命周期

生命周期主要分為 三個(gè)階段,在函數(shù)式組件中是無(wú)法模擬出上面類式組件的各個(gè)生命鉤子函數(shù)的,但是可以通過(guò) useEffect() Hook模擬組件的 掛載、更新、銷毀三個(gè)階段;

4.1 模擬掛載階段

與類組件中的 componentDidMount() 鉤子函數(shù)相似

useEffect(() => {// 這里執(zhí)行掛載時(shí)候操作console.log('===componentDidMount==')}, []) // 第二參數(shù)為空 數(shù)組時(shí)候,表示 掛載、卸載時(shí)候執(zhí)行;

4.2 模擬更新階段

與類式組件中的 shouldComponentUpdate 類似

 useEffect(() => {// 這里執(zhí)行掛載時(shí)候操作console.log('===componentDidMount==')console.log('===我更新了==')}, [count]) // 第二參數(shù)為空 數(shù)組時(shí)候,表示 掛載、卸載時(shí)候執(zhí)行;若第二個(gè)參數(shù) 傳入了依賴屬性,則該屬性變化時(shí)候,會(huì)執(zhí)行第一個(gè)參數(shù)的回調(diào)函數(shù)

4.3 模擬卸載階段

與類式組件中的 componentWillUnmount() 類似


useEffect(() => {// 這里執(zhí)行掛載時(shí)候操作console.log('===componentDidMount==', count)return () => {// 這里執(zhí)行卸載后的操作console.log('=組件卸載了==')}}, [count]) // 第二參數(shù)為空 數(shù)組時(shí)候,表示 掛載、卸載時(shí)候執(zhí)行,

注意:官網(wǎng)現(xiàn)在推薦開(kāi)發(fā)時(shí)候使用函數(shù)式組件,相對(duì)類式組件更加靈活方便,但是在編寫(xiě)通用性處理復(fù)雜的邏輯狀態(tài)時(shí)候,還是建議使用類式組件,類式組件有很好的繼承擴(kuò)展性,通過(guò)生命周期鉤子,能夠更好的`

http://www.risenshineclean.com/news/51303.html

相關(guān)文章:

  • 北京專業(yè)網(wǎng)站開(kāi)發(fā)公司湖南seo推廣多少錢
  • 江門建設(shè)建筑網(wǎng)站企業(yè)網(wǎng)站seo排名優(yōu)化
  • 南京網(wǎng)站制作公司南京樂(lè)識(shí)專心地推拉新接單平臺(tái)
  • 兼職做美工攝影去哪個(gè)網(wǎng)站成都百度seo推廣
  • 汕尾做網(wǎng)站如何做免費(fèi)網(wǎng)絡(luò)推廣
  • blogger wordpressseo人員招聘
  • 網(wǎng)站客戶續(xù)費(fèi)北京百度競(jìng)價(jià)托管
  • 沈陽(yáng)建設(shè)企業(yè)網(wǎng)站如何做好網(wǎng)絡(luò)營(yíng)銷
  • 零基礎(chǔ)網(wǎng)站建設(shè)教程seo的基本步驟是什么
  • wordpress 登錄seo外包公司專家
  • 網(wǎng)站策劃內(nèi)容有哪些靠譜的代運(yùn)營(yíng)公司
  • 企業(yè)網(wǎng)站建設(shè)怎么選擇空間百度關(guān)鍵詞優(yōu)化平臺(tái)
  • 網(wǎng)址ip域名解析寧波seo推廣如何收費(fèi)
  • 手機(jī)怎樣做網(wǎng)站圖解品牌推廣軟文200字
  • 跟我一起做網(wǎng)站 下載seo搜索優(yōu)化技術(shù)
  • 網(wǎng)站工作室最牛餐飲營(yíng)銷手段
  • 自己做網(wǎng)站開(kāi)店寧波網(wǎng)站建設(shè)推廣平臺(tái)
  • 安卓做視頻網(wǎng)站微信推廣軟件有哪些
  • 做投資網(wǎng)站深圳seo優(yōu)化公司哪家好
  • 哈爾濱網(wǎng)絡(luò)開(kāi)發(fā)放心網(wǎng)站推廣優(yōu)化咨詢
  • 高校門戶網(wǎng)站建設(shè)問(wèn)題seo網(wǎng)站關(guān)鍵詞優(yōu)化方式
  • 淘寶上有做網(wǎng)站的嗎某個(gè)網(wǎng)站seo分析實(shí)例
  • 外貿(mào)零售網(wǎng)站建設(shè)查關(guān)鍵詞排名網(wǎng)
  • 玉林市網(wǎng)站開(kāi)發(fā)公司swot分析
  • 網(wǎng)站建設(shè)圖書(shū)百度客服中心人工在線咨詢
  • 改wordpress評(píng)論郵箱willfast優(yōu)化工具下載
  • 做網(wǎng)站外包工作怎么樣360應(yīng)用商店
  • 手機(jī)h5網(wǎng)站模板利于seo的建站系統(tǒng)有哪些
  • 廣東省住房和城鄉(xiāng)建設(shè)局網(wǎng)站投廣告的平臺(tái)有哪些
  • 注冊(cè)公司流程和費(fèi)用需要哪些條件酒店seo是什么意思