当前位置: 首页 > news >正文

react函数组件常用的几个钩子函数

react框架

react框架包括包括两大类:类组件+函数组件。

类组件构成:constructor+自定义方法。调用方法通过this.方法名()。constructor(super+state)构造器里面必有super字段。render()方法里面写页面布局。

函数组件构成:各种钩子函数+return()方法里面写页面布局。钩子函数是use开头的系列。

函数组件常用的钩子函数useState、useEffect、useRef、useCallback

一、useState

定义:

useState是react自带的一个hook函数,它的作用是用来声明状态变量。

详细解释:在项目中,我们通过react-redux 或者dva数据存储框架进行全局声明并保存state中的数据。可是如果我们想在当前操作的index.tsx或者index.jsx中使用state,可以通过useState()钩子函数进行声明某一个当前页面的state数据状态。

用法:

const [ count , setCount ] = useState(0);useState(params) 设置 第一个参数的初始值 
count 是第一个参数解构出的第一个参数 
setCount 是第二个参数 是一个函数 用来设置count 

二、useEffect

定义:

什么是副作用

​ 副作用是相对于主作用来说的,一个函数除了主作用,其他的作用就是副作用。对于 React 组件来说,主作用就是根据数据(state/props)渲染 UI,除此之外都是副作用(比如,手动修改 DOM)

常见的副作用

数据请求 ajax发送

手动修改dom

localstorage操作

用法:

useEffect函数的作用就是为react函数组件提供副作用处理的!

useEffect(() => {},[])接受2个参数,第一个是函数,第二个是数组
如果第二个参数数组为空 它就是componentDidMount 只有第一次渲染
如果二个参数数组 里面的值 设置的 值改变 它就是componentDidUpdate 只要值改变了 他就渲染
useEffect 内部 最外层 支持return () => 相当于 componentWillUnmount 卸载 来开当前组件的时候触发 并且 每次更新都触发。

相同点: useState 和 useEffect 支持写多个

实际使用:

在项目中,结合dva,在页面组件中发起网络请求。

useEffect(() => {函数},[])
{dispatch({参数})}
{type:'model模块名/某一个方法',  //namespace如果在model外调用,需要添加。payload:{}  //写法:state中定义的属性:属性值。需要传递的信息。
}

三、useRef

定义:

使用useRef获取Dom元素,可以再useEffect中立马使用。

useEffect在页面组件中会渲染两次,根据react框架的设计者的设定,无法在初次渲染中拿到DOM(真实的Dom节点),不能通过document.getElementByID('#id名')这种方式获取真实的dom节点。

ref的拿取:callbackRef

通过callbackRef,在组件挂载后,操作该dom。会在真实Dom生成时执行。使用callbackRef,使用它用回调函数的方式获取ref,进而保存使用。

使用步骤:

const myRef = useRef()
myRef.current = 赋值
render/return (...)
<div ref={myRef}> 
</div>

相关文章:

react函数组件常用的几个钩子函数

react框架 react框架包括包括两大类&#xff1a;类组件函数组件。 类组件构成&#xff1a;constructor自定义方法。调用方法通过this.方法名()。constructor(superstate)构造器里面必有super字段。render()方法里面写页面布局。 函数组件构成&#xff1a;各种钩子函数return()方…...

如何进行大数据测试

大数据解决方案 大数据解决方案包括一系列工具和技术&#xff0c;用于收集、存储、处理和分析大量的数据。以下是一些常用的大数据解决方案&#xff1a; Apache Hadoop&#xff1a;Hadoop是一个开源的大数据处理框架&#xff0c;可以在商用硬件上处理大规模数据集。它包括HDFS…...

java版本企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…...

Redis哨兵集群搭建及其原理

Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…...

读书笔记--读数学之美有感

大概是在10年前&#xff0c;无意间读到吴军老师撰写得数学之美&#xff0c;感觉吴老师对数学与信息论的结合讲述的太好了&#xff0c;吴老师结合自身的多年工作经历将信息技术中用到的数学&#xff0c;特别是数学里面的很多概率论、线性代数、模型算法、编解码规则等&#xff0…...

[PyTorch][chapter 33][卷积神经网络]

前言 参考&#xff1a; 《数字图像处理与机器视觉》 第五章 空间域图像增强&#xff0c; 图像卷积&#xff1a; 空间域图像增强 图像增强是根据特定需要突出一副图像中的某些信息&#xff0c;同时削弱或去除 某些不需要信息的处理方法,其主要目的是是的处理后的图像对某种特定的…...

Lift, Splat, Shoot 论文学习

1. 解决了什么问题&#xff1f; LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后&#xff0c;不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类&#xff1a; 自下而上&#xff1a;利用 transformer 的 query 机制&#xff0c;…...

【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)

【密码产品篇】动态口令系统密钥体系结构&#xff08;SM3、SM4&#xff09; 动态口令是一种一次性口令机制&#xff0c;用户无须记忆口令&#xff0c;也无须手工更改口令。口令通过用户持有的客户端器件生成&#xff0c;并基于一定的算法与服务端形成同步&#xff0c;从而作为…...

PDF工具Adobe Arcrobat Pro DC下载安装教程

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;adobe 免费获取Adobe Arcrobat Pro DC安装包 Acrobat是一款PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;编辑软件。借助它&#xff0c;您可以以PDF格式制作和保存你的文档 &#xff0c…...

大量从IT培训班出来的程序员们最后都怎样了?

在当今信息时代&#xff0c;IT行业越来越受到人们的关注。越来越多的年轻人选择进入IT行业学习编程技术&#xff0c;而IT培训班也因此应运而生。据统计&#xff0c;在中国&#xff0c;每年约有100万人通过各种途径进入IT行业。其中&#xff0c;通过IT培训班获得技能认证的人数也…...

【论文阅读笔记】Federated Unlearning with Knowledge Distillation

个人阅读笔记&#xff0c;如有错误欢迎指出 Arxiv 2022 [2201.09441] Federated Unlearning with Knowledge Distillation (arxiv.org) 问题&#xff1a; 法律要求客户端有随时要求将其贡献从训练中消除的权利 让全局模型忘记特定客户的贡献的一种简单方法是从头开始对模型进…...

常用MQ介绍与区别

RabbitMQ RabbitMQ是实现AMQP协议(0.9.1) 的消息中间件的一种&#xff0c;由RabbitMQ Technologies Ltd开发并且提供商业支持的&#xff0c;最初起源于金融系统&#xff0c;服务器端用Erlang语言编写&#xff0c;用于在分布式系统中存储转发消息&#xff0c;在易用性、扩展性、…...

今天面试招了个20K的人,从腾讯出来的果然都有两把刷子···

现在找个会自动化测试的人真是难呀&#xff0c;10个里面有8个写了会自动化&#xff0c;但一问就是三不知 公司前段时间缺人&#xff0c;也面了不少测试&#xff0c;前面一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在15-20k&#xff0c;面试的…...

加速度传感器的量程估算

下面推导过程中包含一个重要的错误&#xff1a;sinx/x1没有错&#xff0c;但是这里的x是 t&#xff0c;当x t时&#xff0c;位移并非sin(t)&#xff0c;而是n*sin(t)&#xff0c;我稍後修訂。 在测震动和噪声的场合&#xff0c;现有的加速度传感器&#xff0c;需要客户提供加…...

0601-指针的基础

内存 物理存储器和存储地址空间 物理存储器&#xff1a;实际存在的具体存储器芯片。比如&#xff1a;内存条、RAM芯片、ROM芯片。 存储地址空间&#xff1a;对存储器编码的范围。 编码&#xff1a;对每个物理存储单元&#xff08;一个字节&#xff09;分配一个号码寻址&…...

关于K8S库中高可用的锁机制详解

简介 对于无状态的组件来说&#xff0c;天然具备高可用特性&#xff0c;无非就是多开几个副本而已&#xff1b;而对于有状态组件来说&#xff0c;实现高可用则要麻烦很多&#xff0c;一般来说通过选主来达到同一时刻只能有一个组件在处理业务逻辑。 在Kubernetes中&#xff0c;…...

常用中外文献检索网站大盘点

一、常用中文文献检索权威网站&#xff1a; 1、知网&#xff1a;是全球最大的中文数据库。提供中国学术文献、外文文献、学位论文、报纸、会议、年鉴、工具书等各类资源&#xff0c;并提供在线阅读和下载服务。涵盖领域包括&#xff1a;基础科学、文史哲、工程科技、社会科学、…...

公司招了一个00后,以为是个小年轻,没想到人家是个卷王...

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资也不低&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。 令我印象最深的是一个00后测试员&#xff0c;…...

数字化转型难?怎么转?听听厂商、CIO、CEO怎么说

数字化转型已经成为当今商业领域中的热门话题。对于许多企业来说,数字化转型是一项重要而且必不可少的战略,以适应快速变化的市场环境并保持竞争力。然而,数字化转型并不是一项容易的任务,它涉及到许多方面,需要综合考虑技术、组织和文化等因素。那么,让我们来听听一些厂…...

C++面试题汇总

C面试题汇总 1. new/delete和malloc/free&#xff1a;2. delete和delete[]&#xff1a;3. 常引用&#xff1a;4. overload、override、overwrite的介绍5. C是不是类型安全的&#xff1f;6. main 函数执行以前&#xff0c;还会执行什么代码&#xff1f;7. 数组与指针的区别&…...

深度解析TFTP与FTP:核心区别、工作原理与应用场景

深度解析TFTP与FTP&#xff1a;核心区别、工作原理与应用场景摘要一、基础定义1.1 FTP 协议1.2 TFTP 协议二、TFTP 和 FTP 核心区别&#xff08;表格对比&#xff09;三、工作原理简要说明FTP 原理TFTP 原理四、TFTP 应用场景&#xff08;最典型&#xff09;1. **网络设备配置备…...

智见未来 | 融合传统视觉与深度学习的AI水位识别技术实践分享

背景在水利工程数字化转型与智能化监管的宏观背景下&#xff0c;实时、精准的水位监测已成为防洪排涝、水资源调配的核心支撑。近年来&#xff0c;国家持续推动数字化与智能化发展。2025年发布的《国民经济和社会发展第十五个五年规划建议》提出&#xff0c;要深入推进数字中国…...

Qwen3.5-9B-AWQ-4bit VMware虚拟机安装Ubuntu及GPU环境配置

Qwen3.5-9B-AWQ-4bit VMware虚拟机安装Ubuntu及GPU环境配置 1. 准备工作 在开始之前&#xff0c;我们需要确认几个关键事项&#xff1a; 主机硬件配置&#xff1a;确保你的物理机至少16GB内存&#xff08;推荐32GB&#xff09;&#xff0c;并配备NVIDIA GPU&#xff08;支持…...

Amber与Kemal框架深度对比:为什么选择Amber开发企业级应用

Amber与Kemal框架深度对比&#xff1a;为什么选择Amber开发企业级应用 【免费下载链接】amber A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance. 项目…...

被遗忘的宝藏:深度挖掘一款停更20年的神器——拖把更名器

在软件的海洋中&#xff0c;有这样一类特殊的存在&#xff1a;它们并非出自大公司之手&#xff0c;也没有大规模的商业推广&#xff0c;却凭借着优秀的设计和实用的功能&#xff0c;在用户中口口相传。 它们可能已经停更多年&#xff0c;在主流软件平台上难觅踪迹&#xff0c;但…...

OpCore-Simplify一键生成黑苹果EFI:零基础也能轻松配置的智能工具

OpCore-Simplify一键生成黑苹果EFI&#xff1a;零基础也能轻松配置的智能工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果配置时复杂…...

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端调试与GM后台管理

1. 环境准备与基础配置 第一次接触游戏服务端搭建的朋友可能会觉得无从下手&#xff0c;但其实只要跟着步骤走&#xff0c;整个过程并不复杂。我去年在本地虚拟机成功部署过这个版本&#xff0c;最近又在云服务器上重新走了一遍流程&#xff0c;把最新遇到的坑都记录下来了。 先…...

Axure RP中文语言包:3分钟实现专业原型设计工具完全汉化

Axure RP中文语言包&#xff1a;3分钟实现专业原型设计工具完全汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是否正在使…...

20260408 硬盘分区管理

一、硬盘分区管理 大容量的硬盘&#xff0c;分区使用&#xff1a;C盘系统盘&#xff0c;D盘办公&#xff0c;E盘娱乐。 1.1 识别硬盘设备接口类型设备命名示例说明SATA/SAS/USB/SCSI/dev/sda、/dev/sdb …物理机常用的磁盘设备命名virtio-blk&#xff08;虚拟机&#xff09;/de…...

如何高效管理全面战争MOD:虎符台/Legion Seal完整指南

如何高效管理全面战争MOD&#xff1a;虎符台/Legion Seal完整指南 【免费下载链接】legion-seal 虎符台/Legion Seal&#xff0c;全面战争游戏MOD管理器&#xff0c;技术栈&#xff1a;Tauri 2 Vue TailwindCSS 项目地址: https://gitcode.com/zeyl/legion-seal 前言&…...