欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)式編程沒(méi)有生命周期,因此需要借助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ù)式組件中沒(méi)有自己的生命周期,需要使用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)聽(tīng)所有數(shù)據(jù)的更新,數(shù)據(jù)更新則會(huì)觸發(fā)useEffect()。(componentDidMount、componentDidUpdate)
    2.第二個(gè)參數(shù)為[]的情況:回調(diào)函數(shù)只會(huì)在第一次render()后執(zhí)行。(componentDidMount)
    3.第二個(gè)參數(shù)為[監(jiān)聽(tīng)的元素]:在初次渲染執(zhí)行一次后,只會(huì)監(jiān)聽(tīng)相應(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)聽(tīng)所有數(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 native帶索引的城市列表組件的實(shí)例代碼

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

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

    react項(xiàng)目引入scss的方法

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

    詳解react關(guān)于事件綁定this的四種方式

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

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

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

    react-router?重新加回跳轉(zhuǎn)攔截功能詳解

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

    react?hooks中的useState使用要點(diǎn)

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

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

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

    React前端渲染優(yōu)化--父組件導(dǎo)致子組件重復(fù)渲染的問(wèn)題

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

    react native 原生模塊橋接的簡(jiǎn)單說(shuō)明小結(jié)

    這篇文章主要介紹了react native 原生模塊橋接的簡(jiǎn)單說(shuō)明小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • ios原生和react-native各種交互的示例代碼

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

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

最新評(píng)論