亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

React函數式組件Hook中的useEffect函數的詳細解析

 更新時間:2022年10月27日 14:11:53   作者:小馬_xiaoen  
useEffect是react v16.8新引入的特性。我們可以把useEffect hook看作是componentDidMount、componentDidUpdate、componentWillUnmounrt三個函數的組合

前言

React函數式編程沒有生命周期,因此需要借助useEffect來實現(xiàn)。

useEffect的作用

  • 發(fā)ajax請求獲取數據
  • 設置訂閱/獲取定時器
  • 手動更改真實DOM

useEffect的使用?

1.class組件

在class組件中可以使用生命周期函數,知道組件觸發(fā)的過程。

代碼如下(示例):

import React, { Component } from 'react'
export default class App extends Component {
    constructor(p){
        super(p)
        this.state = {num: 0}
    }
    render() {
        return (
            <div>
                <h2>{this.state.num}</h2>
                <button onClick={this.addNum.bind(this)}>累加</button>
            </div>
        )
    }
    componentDidMount(){
        console.log('Mount')
    }
    componentDidUpdate(){
        console.log('Update')
    }
    componentWillUnmount(){
    	consoloe.log('Unmount')
    }
    addNum(){
        this.setState({
            num: this.state.num+1
        })
    }
}

生命周期(圖)

2.函數式組件

函數式組件中沒有自己的生命周期,需要使用useEffect模擬生命周期。

代碼如下(示例):

import React, { useState, useEffect } from 'react'
function App1(){
    const [num, setNum] = useState(0);
    const [num1, setNum1] = useState(1)
    /*
    1.第二個參數為空的情況:在初次渲染執(zhí)行一次后,會監(jiān)聽所有數據的更新,數據更新則會觸發(fā)useEffect()。(componentDidMount、componentDidUpdate)
    2.第二個參數為[]的情況:回調函數只會在第一次render()后執(zhí)行。(componentDidMount)
    3.第二個參數為[監(jiān)聽的元素]:在初次渲染執(zhí)行一次后,只會監(jiān)聽相應元素變化才會觸發(fā)回調函數。(componentDidMount、componentDidUpdate)
    4.useEffect體中使用了return為一個函數,會在組件卸載前執(zhí)(componentWillUnmount)
    */
    useEffect(()=>{
        console.log('useEffect')
    }, [num])
    return (
    <div>
      <h1>{num}</h1>
      <button onClick={()=>setNum(num+1)}>累加</button>
      <h1>{num1}</h1>
      <button onClick={()=>setNum1(num1+1)}>累加</button>
    </div>
    )
}
export default App1;

總結

語法和說明

useEffect(()=>{
	// 在此可以執(zhí)行任何帶副作用操作
	return ()=> { // 在組件卸載前執(zhí)行
		// 在此走一些收尾工作,如清除定時器/取消訂閱等
	}
},[stateValue])// 如果指定的是[],回調函數只會在第一次render()后執(zhí)行
//如果第二個參數不填,將會監(jiān)聽所有數據的更新

可以把useEffect Hook 看做如下三個函數的組合

  • componentDidMount()
  • componentDidUpdate()
  • componentWillUnmount()

到此這篇關于React函數式組件Hook中的useEffect函數的詳細解析的文章就介紹到這了,更多相關React useEffect內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • react native帶索引的城市列表組件的實例代碼

    react native帶索引的城市列表組件的實例代碼

    本篇文章主要介紹了react-native城市列表組件的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • react項目引入scss的方法

    react項目引入scss的方法

    這篇文章主要介紹了react項目引入scss的方法,本文給大家介紹了React pwa的配置方法,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 詳解react關于事件綁定this的四種方式

    詳解react關于事件綁定this的四種方式

    這篇文章主要介紹了詳解react關于事件綁定this的四種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • React組件二次包裝的具體實現(xiàn)

    React組件二次包裝的具體實現(xiàn)

    本文主要介紹了React組件二次包裝的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • react-router?重新加回跳轉攔截功能詳解

    react-router?重新加回跳轉攔截功能詳解

    這篇文章主要為大家介紹了react-router?重新加回跳轉攔截功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • react?hooks中的useState使用要點

    react?hooks中的useState使用要點

    這篇文章主要為大家介紹了react?hooks中的useState使用要點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • React中組件優(yōu)化的最佳方案分享

    React中組件優(yōu)化的最佳方案分享

    React組件性能優(yōu)化可以減少渲染真實DOM的頻率,以及減少VD比對的頻率,本文為大家整理了一些有效的React組件優(yōu)化方法,需要的小伙伴可以參考下
    2023-12-12
  • React前端渲染優(yōu)化--父組件導致子組件重復渲染的問題

    React前端渲染優(yōu)化--父組件導致子組件重復渲染的問題

    本篇文章是針對父組件導致子組件重復渲染的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • react native 原生模塊橋接的簡單說明小結

    react native 原生模塊橋接的簡單說明小結

    這篇文章主要介紹了react native 原生模塊橋接的簡單說明小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • ios原生和react-native各種交互的示例代碼

    ios原生和react-native各種交互的示例代碼

    本篇文章主要介紹了ios原生和react-native各種交互的示例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-08-08

最新評論