最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React函數(shù)式組件Hook中的useEffect函數(shù)的詳細(xì)解析

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

前言

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

useEffect的作用

  • 發(fā)ajax請(qǐng)求獲取數(shù)據(jù)
  • 設(shè)置訂閱/獲取定時(shí)器
  • 手動(dòng)更改真實(shí)DOM

useEffect的使用?

1.class組件

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

代碼如下(示例):

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.函數(shù)式組件

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

代碼如下(示例):

import React, { useState, useEffect } from 'react'
function App1(){
    const [num, setNum] = useState(0);
    const [num1, setNum1] = useState(1)
    /*
    1.第二個(gè)參數(shù)為空的情況:在初次渲染執(zhí)行一次后,會(huì)監(jiān)聽所有數(shù)據(jù)的更新,數(shù)據(jù)更新則會(huì)觸發(fā)useEffect()。(componentDidMount、componentDidUpdate)
    2.第二個(gè)參數(shù)為[]的情況:回調(diào)函數(shù)只會(huì)在第一次render()后執(zhí)行。(componentDidMount)
    3.第二個(gè)參數(shù)為[監(jiān)聽的元素]:在初次渲染執(zhí)行一次后,只會(huì)監(jiān)聽相應(yīng)元素變化才會(huì)觸發(fā)回調(diào)函數(shù)。(componentDidMount、componentDidUpdate)
    4.useEffect體中使用了return為一個(gè)函數(shù),會(huì)在組件卸載前執(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;

總結(jié)

語(yǔ)法和說(shuō)明

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

可以把useEffect Hook 看做如下三個(gè)函數(shù)的組合

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

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

相關(guān)文章

  • React封裝自定義Hook捕獲所有錯(cuò)誤的實(shí)現(xiàn)方法

    React封裝自定義Hook捕獲所有錯(cuò)誤的實(shí)現(xiàn)方法

    在 React 開發(fā)中,錯(cuò)誤處理是確保應(yīng)用穩(wěn)定性和用戶體驗(yàn)的重要部分,React 提供了多種錯(cuò)誤捕獲方式,包括錯(cuò)誤邊界**等,本文將詳細(xì)介紹這些方法,并展示如何封裝一個(gè)能夠捕獲所有同步和異步錯(cuò)誤的自定義 Hook,需要的朋友可以參考下
    2024-12-12
  • 使用webpack配置react-hot-loader熱加載局部更新

    使用webpack配置react-hot-loader熱加載局部更新

    這篇文章主要介紹了使用webpack配置react-hot-loader熱加載局部更新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • React錯(cuò)誤的習(xí)慣用法分析詳解

    React錯(cuò)誤的習(xí)慣用法分析詳解

    這篇文章主要為大家介紹了React錯(cuò)誤用法習(xí)慣分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 完美解決react-codemirror2?編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題

    完美解決react-codemirror2?編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題

    這篇文章主要介紹了react-codemirror2編輯器需點(diǎn)擊一下或者延時(shí)才顯示數(shù)據(jù)的問題,解決方法也很簡(jiǎn)單,需要手動(dòng)引入自動(dòng)刷新的插件,配置一下參數(shù)就可以了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • 詳解如何使用React Hooks請(qǐng)求數(shù)據(jù)并渲染

    詳解如何使用React Hooks請(qǐng)求數(shù)據(jù)并渲染

    這篇文章主要介紹了如何使用React Hooks請(qǐng)求數(shù)據(jù)并渲染,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • React 中常用的幾種路由跳轉(zhuǎn)方式小結(jié)

    React 中常用的幾種路由跳轉(zhuǎn)方式小結(jié)

    基本路由跳轉(zhuǎn)是最常見的一種方式,下面介紹React 中常用的幾種路由跳轉(zhuǎn)方式,感興趣的朋友一起看看吧
    2023-12-12
  • ReactNative頁(yè)面跳轉(zhuǎn)實(shí)例代碼

    ReactNative頁(yè)面跳轉(zhuǎn)實(shí)例代碼

    這篇文章主要介紹了ReactNative頁(yè)面跳轉(zhuǎn)的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 詳解React的回調(diào)渲染模式

    詳解React的回調(diào)渲染模式

    這篇文章主要介紹了詳解React的回調(diào)渲染模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • React組件傳參方式你了解嗎

    React組件傳參方式你了解嗎

    眾所周知?,在業(yè)務(wù)開發(fā)中,無(wú)論用的什么框架,首先要熟悉項(xiàng)目搭建,路由配置和組件通信,所以我們今天要探究的就是React中組件通信的幾種方式,快跟隨小編一起學(xué)習(xí)起來(lái)吧
    2024-03-03
  • React Native項(xiàng)目中使用Lottie動(dòng)畫的方法

    React Native項(xiàng)目中使用Lottie動(dòng)畫的方法

    這篇文章主要介紹了React Native 實(shí)現(xiàn)Lottie動(dòng)畫的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10

最新評(píng)論

肥城市| 特克斯县| 景宁| 湖北省| 磐石市| 沁阳市| 富民县| 安乡县| 宜城市| 武鸣县| 南充市| 六安市| 应用必备| 岢岚县| 福贡县| 崇州市| 赣州市| 孝义市| 大邑县| 崇文区| 朔州市| 卫辉市| 偏关县| 资溪县| 五常市| 兰州市| 丹江口市| 黄浦区| 康乐县| 郧西县| 基隆市| 株洲县| 澳门| 手机| 镇原县| 武夷山市| 安西县| 苏尼特右旗| 蛟河市| 平阴县| 黔西县|