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

React中的useEffect useLayoutEffect到底怎么用

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

前言

使用緣由:

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

從而導(dǎo)致死循環(huán)的進行數(shù)據(jù)請求, 所以這時候可以用到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)該依賴更新后也會進行執(zhí)行(可以想象成class類的更新)

下方案例代表第一次執(zhí)行,name被更新后也會進行執(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;

實現(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
                    })
                }}>點我</button>
                {this.state.iscreated && <Children />}
            </div>
        )
    }
}
export default Test4;

兩者區(qū)別

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

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

相關(guān)文章

  • react koa rematch 如何打造一套服務(wù)端渲染架子

    react koa rematch 如何打造一套服務(wù)端渲染架子

    這篇文章主要介紹了react koa rematch 如何打造一套服務(wù)端渲染架子,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 詳解React之父子組件傳遞和其它一些要點

    詳解React之父子組件傳遞和其它一些要點

    這篇文章主要介紹了詳解React之父子組件傳遞和其它一些要點,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • react腳手架如何配置less和ant按需加載的方法步驟

    react腳手架如何配置less和ant按需加載的方法步驟

    這篇文章主要介紹了react腳手架如何配置less和ant按需加載的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 手挽手帶你學(xué)React之React-router4.x的使用

    手挽手帶你學(xué)React之React-router4.x的使用

    這篇文章主要介紹了手挽手帶你學(xué)React之React-router4.x的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • React SSR樣式及SEO的實踐

    React SSR樣式及SEO的實踐

    這篇文章主要介紹了React SSR樣式及SEO的實踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • React Fiber樹的構(gòu)建和替換過程講解

    React Fiber樹的構(gòu)建和替換過程講解

    React Fiber樹的創(chuàng)建和替換過程運用了雙緩存技術(shù),直接將舊的 fiber 樹替換成新的 fiber 樹,這樣做的好處是省去了直接在頁面上渲染時的計算時間,避免計算量大導(dǎo)致的白屏、卡頓,現(xiàn)在你一定還不太理解,下面進行詳細講解,需要的朋友可以參考下
    2022-12-12
  • react+redux仿微信聊天界面

    react+redux仿微信聊天界面

    這篇文章主要介紹了react+redux仿微信聊天IM實例|react仿微信界面 ,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • react-router?v6實現(xiàn)動態(tài)路由實例

    react-router?v6實現(xiàn)動態(tài)路由實例

    這篇文章主要為大家介紹了react-router?v6實現(xiàn)動態(tài)路由實例詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • React styled components樣式組件化使用流程

    React styled components樣式組件化使用流程

    styled-components 是react的一個第三方庫,一種css私有化的方式。用來實現(xiàn)CSS in JS 的方式之一。在多人協(xié)作中,css必定會出現(xiàn)命名沖突,與vue的scoped解決方案不同,react用styled-components的給類名加了隨機字符的方式實現(xiàn)了css的私有化
    2023-02-02
  • ReactNative環(huán)境搭建的教程

    ReactNative環(huán)境搭建的教程

    這篇文章主要介紹了ReactNative環(huán)境搭建的教程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評論

綦江县| 湖南省| 平塘县| 尉氏县| 漳州市| 宜兰县| 宣化县| 庆元县| 宜良县| 宝丰县| 原平市| 莒南县| 山丹县| 定远县| 商水县| 龙胜| 郑州市| 镇原县| 浏阳市| 科技| 聊城市| 九寨沟县| 怀来县| 新乐市| 延庆县| 湛江市| 延边| 建昌县| 同德县| 秀山| 西盟| 连平县| 宁波市| 汽车| 孝感市| 衡山县| 虞城县| 滨州市| 天祝| 温州市| 页游|