react中的useEffect()的使用

useEffect()是react中的hook函数,作用是用于创建由渲染本身引起的操作,而不是事件的触发,比如Ajax请求,DOM的更改

首先useEffect()是个函数,接受两个参数,第一个参数是一个方法,第二个参数是数组 称为依赖项数组,可以没有。第二个参数的不同会影响第一个参数方法的使用

依赖项数组不同的区别

另外还有一种情况就是清除useEffect()的副作用,直接在第一个参数函数里面写一个return一个函数,就会在组件卸载的时候自动清理

import { useEffect, useState } from "react"

function Son(){
    // 开启一个定时器
    useEffect(()=>{
       const timer=  setInterval(()=>{
            console.log("定时器");
            
        },1000)
        return ()=>{
            clearInterval(timer)
        }
    },[])
    return (
        <>
            <div>这是 son组件
            </div>
        </>
    )
}



function App(){
    // 1.没有依赖项的时候 初始会触发 组件更新会触发
    const [count,setCount] = useState(0)
    // useEffect(()=>{
    //     console.log("副作用函数执行与否");
        
    // })
      // 2.当依赖项为空数组的时候 只会在初始时触发 
    //   useEffect(()=>{
    //     console.log("副作用函数执行 []");
        
    // },[])

    // 3.传入特定的依赖项  初始时触发 依赖项变化时触发
     useEffect(()=>{
        console.log("副作用函数执行 []");
        
    },[count])



    // 4.清除useEffect的副作用 通过在第一个参数函数中return一个函数 清除副作用
    // 最常用的常见就是在组件卸载时自动执行
    const [show,setShow] = useState(true)

    return (
        <>
            <div>useEffect的使用 根据依赖项的不同</div>
            <button onClick={()=>setCount(count+1)}>{count}</button>

            <div>
                {show&&<Son/>}
                <button onClick={()=>setShow(false)}>卸载son组件</button>
            </div>
        </>
    )
}



export default App

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634878.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《计算机体系结构》期末考试复习笔记(一)试卷手写笔记(超重点)

一、MIPS 执行速率执行时间有效CPI【第1题】 二、Amdahl定律 - 性能加速比SP【第2题&#xff0c;第3题&#xff0c;第4题】 (百分比f 倍数r &#xff09; 三、哈夫曼编码 2-4扩展码【第5题】 四、互连函数【第9题】 就是每生成一个根节点&#xff0c; 就从小到大重新排…

后量子密码解决方案

什么是后量子密码学 (PQC)&#xff0c;为什么准备工作如此重要? 量子计算正在迅速发展;用不了多久&#xff0c;量子网络攻击就会成为可能。量子网络攻击将能够在几分钟内瘫痪大型网络。我们今天赖以保护我们的连接和交易的一切都将受到量子计算机的威胁&#xff0c;危及所有密…

【618狂欢】五款必抢好物!爆款数码好物让你轻松get新潮流!

随着科技的飞速发展&#xff0c;数码产品已经成为我们生活中不可或缺的一部分。它们不仅为我们提供了便捷的生活体验&#xff0c;更成为了我们展示个性和追求潮流的重要载体。而在每年的618购物狂欢节&#xff0c;各大电商平台都会推出众多优惠活动&#xff0c;让我们有机会以更…

Linux——进程信号

目录 一、信号的理解 二、信号的种类 2.1 标准信号 (1-31) 2.2 实时信号 (通常是34及以上) 三、信号的产生 3.1 用户通过终端产生信号 3.1.1 signal 函数 3.1.2 demo 测试 3.1.3 demo 现象 3.2 通过系统函数产生信号 3.2.1 demo 测试 3.3 由软件条件产生信号 3.3.1…

访问列表元素

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;如果想将列表的内容输出也比较简单&#xff0c;可以直接使用print()函数即可。例如&#xff0c;创建一个名称为untitle的列表…

JAVA开发 基础Jaccard来计算两个字符串之间的重复率

计算两个字符串之间的重复率 Jaccard实现代码基于最长公共子序列来计算两个字符串之间的重复率 Jaccard Jaccard方法&#xff0c;也称为Jaccard相似度或Jaccard相似系数&#xff0c;是一种用于衡量两个集合相似程度的指标。其逻辑基于集合之间的交集与并集的关系来衡量它们的相…

Linux bc命令(bc指令)(基本计算器)(任意精度计算语言:支持浮点数运算、变量赋值和自定义函数等)

文章目录 bc命令文档英文中文 Linux bc 命令详解bc 命令的基本用法启动 bc 环境进行基本计算退出 bc bc 中的数学功能执行高级数学计算平方根和指数函数对数函数 处理精度问题 变量和数组变量赋值和使用数组的使用 创建和使用自定义函数 bc 命令的高级用法在脚本中使用 bc基本脚…

注解大全更新中~

Slf4j 是什么&#xff1a;Slf4j 是 Lombok 提供的一种注解&#xff0c;用于在类中自动生成一个名为 log 的日志对象。通过使用 Slf4j 注解&#xff0c;可以方便地在代码中使用日志功能&#xff0c;而无需手动创建和初始化日志对象。 怎么用&#xff1a; 1.导入依赖的包lombok…

uniapp移动端骨架屏流程

1.使用微信开发者工具来生成骨架屏&#xff1b;在分窗模式下选择页面信息&#xff0c;下拉选择生成骨架屏&#xff1b;他会基于当前页面生成骨架屏的样式 点击确定&#xff1b; 会自动生成这两个文件&#xff1b;一个是html结构文件&#xff0c;一个是css样式文件。 然后把这两…

R语言使用 ggscidca包优雅的绘制支持向量机决策曲线

DCA(Decision Curve Analysis)临床决策曲线是一种用于评价诊断模型诊断准确性的方法&#xff0c;在2006年由AndrewVickers博士创建&#xff0c;我们通常判断一个疾病喜欢使用ROC曲线的AUC值来判定模型的准确性&#xff0c;但ROC曲线通常是通过特异度和敏感度来评价&#xff0c;…

一文读懂RDMA: Remote Direct Memory Access(远程直接内存访问)

目录 ​编辑 引言 一、RDMA的基本原理 二、RDMA的主要特点 三、RDMA的编程接口 四、RDMA的代码演示 服务器端代码&#xff1a; 客户端代码&#xff1a; 五、总结 引言 RDMA&#xff0c;全称Remote Direct Memory Access&#xff0c;即远程直接内存访问&#xff0c;是…

Kafka-ACK机制(ack应答原理、冥等性、事务)

Kafka-ACK机制 Kafka中的ACK&#xff08;Acknowledgement&#xff09;机制是用于保证消息可靠传递的关键组件之一。在生产者发送消息到Kafka集群时&#xff0c;ACK机制决定了何时认为消息已经成功发送。这个机制非常重要&#xff0c;因为它影响了生产者对消息发送的信心以及消费…

fork 与 vfork 的区别

关键区别一&#xff1a; vfork 直接使用父进程存储空间&#xff0c;不拷贝。 关键区别二&#xff1a; vfork保证子进程先运行,当子进程调用exit退出后&#xff0c;父进程才执行。 我们可以定义一个cnt&#xff0c;在子进程中让它变成3&#xff0c; 如果使用fork&#xff0c;那…

uniapp中使用 iconfont字体

下载 iconfont 字体文件 打开 iconfont.css 文件&#xff0c;修改一下 把文件 复制到 static/iconfont/… 目录下 在App.vue中引入iconfont 5. 使用iconfont 使用 iconfont 有两种方式&#xff0c; 一种是 class 方式&#xff0c; 一种是使用 unicode 的方式 5.1 使用 class 的…

firewalld

一、Firewalld概述 Firewalld 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPV4、IPV6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 永久配置 二、Firewalld和iptables的关系 netfilter 位于L…

4. Java多线程面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 为什么要使用并发编程 充分利用多核CPU的计算能力&#xff1a;通过并发编程的形式可以将多核CPU的计算能力发挥到极致&#xff0c;性能得到提升方便进行业务拆分&#xff0c;提升系统并发能力和性能&#xff1a;在特殊的业务场景下&#…

微服务架构-数据共享设计模式

微服务架构-数据共享设计模式 每个微服务拥有自己的数据库&#xff0c;可以独立地进行数据库架构设计、部署和维护。这种是属于常规的方式&#xff0c;不受其他微服务的影响&#xff0c;具有高度的自治性。 然而&#xff0c;在将单体应用拆分成微服务时&#xff0c;可能会遇到…

Stable Diffusion简单食用方法

1.下载 1.1打开B站 哔哩哔哩 (゜-゜)つロ 干杯~-bilibili哔哩哔哩&#xff08;bilibili.com)是国内知名的视频弹幕网站&#xff0c;这里有及时的动漫新番&#xff0c;活跃的ACG氛围&#xff0c;有创意的Up主。大家可以在这里找到许多欢乐。https://www.bilibili.com/ 1.2搜索…

纯血鸿蒙APP实战开发——边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库&#xff0c;只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器&#xff0c; OhosVideoCache就可以一边下载音视频数据并保存在本地&#xff0c;一边读取本地缓存返回给播放器&#xff0c;使用者无需进行其他操作…

低耦合双写一致性方案-使用canal+MQ

需求&#xff1a;继上一篇使用xxljob实现数据的全量同步到es后&#xff0c;当数据库中新增、删除、修改数据时&#xff0c;应该对es中的对应索引库实现增量同步。 本文介绍了2种双写一致性方案&#xff0c;对其中使用MQ的方案进行了实现。 1. 方案设计 1.1 数据一致性问题分析…