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

React中的useEffect useLayoutEffect到底怎么用

 更新時(shí)間:2023年02月06日 15:50:51   作者:碰磕  
這篇文章主要介紹了React中的useEffect useLayoutEffect具體使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

前言

使用緣由:

在函數(shù)中當(dāng)請(qǐng)求數(shù)據(jù)時(shí)并且給state賦值會(huì)導(dǎo)致整個(gè)函數(shù)刷新,

從而導(dǎo)致死循環(huán)的進(jìn)行數(shù)據(jù)請(qǐng)求, 所以這時(shí)候可以用到useEffect

介紹

  • useEffect(處理副作用)
  • useLayoutEffect(同步執(zhí)行副作用)

使用

空依賴

import axios from 'axios';
import React,{useEffect, useState} from 'react';
function Test2() {
    const [list,setlist] =useState([])
    useEffect(()=>{
        axios.get("./test.json").then(res=>{
            console.log(res.data)
            setlist(res.data)
        })
    },[])//參數(shù)1是函數(shù),參數(shù)2是數(shù)組
    return (
        <div>
            {
            list.map(item=>
                <li key={item.id}>{item.name}</li>    
            )
            }
            
        </div>
    );
}
export default Test2;

傳空數(shù)組表示無依賴,只執(zhí)行一次

非空依賴

數(shù)組傳依賴,當(dāng)該依賴更新后也會(huì)進(jìn)行執(zhí)行(可以想象成class類的更新)

下方案例代表第一次執(zhí)行,name被更新后也會(huì)進(jìn)行執(zhí)行

/**
 * 傳非空數(shù)組
 */
import axios from 'axios';
import React,{useEffect, useState} from 'react';
function Test3() {
    const [name,setname] =useState("peng-ke")
    useEffect(()=>{
        setname(name.substring(0,1).toUpperCase()+name.substring(1))
    },[name])//參數(shù)1是函數(shù),參數(shù)2是數(shù)組
    return (
        <div>
            {name}
            <button onClick={()=>{setname("study")}}>修改</button>
        </div>
    );
}
export default Test3;

實(shí)現(xiàn)銷毀操作

通過return函數(shù)執(zhí)行銷毀后的行為

/**
 * 模擬銷毀
 */
import React,{Component, useEffect, useState} from 'react';
function Children() {
    const [name,setname] =useState("peng-ke")
    useEffect(()=>{
        window.onresize=()=>{
            console.log("resize")
        }
        let timer=setInterval(() => {
            console.log("ppppp")
        }, 1000);
        return ()=>{
            console.log("銷毀");
            window.onresize=null;
            clearInterval(timer)
        }
    },[])
    return (
        <div>
            碰磕
        </div>
    );
}
class Test4 extends Component{
    state={
        iscreated:true
    }
    render(){
        return(
            <div>
                <button onClick={()=>{
                    this.setState({
                        iscreated:!this.state.iscreated
                    })
                }}>點(diǎn)我</button>
                {this.state.iscreated && <Children />}
            </div>
        )
    }
}
export default Test4;

兩者區(qū)別

  • 調(diào)用時(shí)機(jī)不同,useLayoutEffect和原來的componentDidMount&componentDidUpdate一致,在react完成DOM更新后馬上同步調(diào)用,這樣會(huì)阻塞頁面渲染,而useEffect是會(huì)在整個(gè)頁面渲染完成才會(huì)調(diào)用所以推薦使用useEffect
  • 如果操作DOM的代碼推薦放在useLayoutEffect中

到此這篇關(guān)于React中的useEffect useLayoutEffect到底怎么用的文章就介紹到這了,更多相關(guān)React useEffect useLayoutEffect內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • React使用api的方式封裝彈窗的示例代碼

    React使用api的方式封裝彈窗的示例代碼

    在現(xiàn)代開發(fā)中的彈窗樣式,經(jīng)常會(huì)是底部一個(gè)叉號(hào)樣式的彈窗,但是目前組件庫中并無類似彈窗組件,本文小編給大家介紹了React使用api的方式封裝彈窗的示例,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09
  • 一文詳解React組件API

    一文詳解React組件API

    這篇文章主要介紹了React的組件API,及組件API的用法詳解,文中有詳細(xì)的代碼示例,對(duì)學(xué)習(xí)或工作有一定的參考價(jià)值,感興趣的同學(xué)可以閱讀本文
    2023-04-04
  • react實(shí)現(xiàn)列表滾動(dòng)組件功能

    react實(shí)現(xiàn)列表滾動(dòng)組件功能

    在開發(fā)項(xiàng)目的時(shí)候,從服務(wù)端獲取到數(shù)據(jù)列表后,展示給用戶看,需要實(shí)現(xiàn)數(shù)據(jù)自動(dòng)滾動(dòng)效果,怎么實(shí)現(xiàn)呢,下面小編給大家分享react實(shí)現(xiàn)列表滾動(dòng)組件功能實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧
    2023-09-09
  • react-router-dom5如何升級(jí)到6

    react-router-dom5如何升級(jí)到6

    這篇文章主要介紹了react-router-dom5如何升級(jí)到6問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • nodejs和react實(shí)現(xiàn)即時(shí)通訊簡(jiǎn)易聊天室功能

    nodejs和react實(shí)現(xiàn)即時(shí)通訊簡(jiǎn)易聊天室功能

    這篇文章主要介紹了nodejs和react實(shí)現(xiàn)即時(shí)通訊簡(jiǎn)易聊天室功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • react?hooks?UI與業(yè)務(wù)邏輯分離必要性技術(shù)方案

    react?hooks?UI與業(yè)務(wù)邏輯分離必要性技術(shù)方案

    這篇文章主要為大家介紹了react?hooks?UI與業(yè)務(wù)邏輯分離必要性技術(shù)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React?SSR架構(gòu)Stream?Rendering與Suspense?for?Data?Fetching

    React?SSR架構(gòu)Stream?Rendering與Suspense?for?Data?Fetching

    這篇文章主要為大家介紹了React?SSR架構(gòu)Stream?Rendering與Suspense?for?Data?Fetching解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • React Hooks如何主動(dòng)更新Hooks組件

    React Hooks如何主動(dòng)更新Hooks組件

    這篇文章主要介紹了React Hooks如何主動(dòng)更新Hooks組件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • react中props 的使用及進(jìn)行限制的方法

    react中props 的使用及進(jìn)行限制的方法

    這篇文章主要介紹了react中的props 的使用及進(jìn)行限制的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • React復(fù)制到剪貼板的示例代碼

    React復(fù)制到剪貼板的示例代碼

    本篇文章主要介紹了React復(fù)制到剪貼板的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08

最新評(píng)論