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

react常用的hooks有哪些?

React常用的Hooks包括以下几种:

        1.useState:用于在函数组件中创建和管理状态。它返回一个数组,第一个值是当前状态的值,第二个值是更新状态的函数。

使用时,首先通过解构赋值获取状态值和更新函数,并设置初始状态:

import React, { useState } from 'react';function Example() {const [count, setCount] = useState(0);return (<div><p>点击了 {count} 次</p><button onClick={() => setCount(count + 1)}>点击增加</button></div>);
}

上述例子中,useState创建一个名为count的状态变量,并通过setCount函数来更新count的值。每次点击按钮时,count的值会加1。

        2.useEffect:用于在函数组件中执行副作用操作,例如订阅数据、手动修改DOM等。可以理解为componentDidMount、componentDidUpdate和componentWillUnmount的组合。

使用时,传入一个回调函数作为第一个参数,该回调函数将在组件渲染后执行:

import React, { useState, useEffect } from 'react';function Example() {const [count, setCount] = useState(0);useEffect(() => {document.title = `点击了 ${count} 次`;});return (<div><p>点击了 {count} 次</p><button onClick={() => setCount(count + 1)}>点击增加</button></div>);
}

上述例子中,每次count发生变化时,通过useEffect更新页面标题。如果不传入第二个参数(依赖数组),则useEffect会在每次组件重新渲染后都执行。

        3.useContext:用于在函数组件中访问和使用Context的值。

使用时,在函数组件中通过调用useContext并传入对应的Context对象来获取其值:

import React, { useContext } from 'react';const UserContext = React.createContext();function Example() {const user = useContext(UserContext);return <div>当前登录用户:{user}</div>;
}

上述例子中,通过useContext获取了UserContext中的user值。

        4.useRef:用于在函数组件中创建可持久化的引用,类似于class组件中的ref。

使用时,通过调用useRef获取一个可变的ref对象,可以将其赋值给DOM元素或其他任意值。

import React, { useRef } from 'react';function Example() {const inputRef = useRef(null);const handleClick = () => {inputRef.current.focus();};return (<div><input ref={inputRef} type="text" /><button onClick={handleClick}>聚焦输入框</button></div>);
}

上述例子中,定义了一个inputRef引用,并将其赋值给输入框的ref属性。点击按钮时,通过inputRef.current.focus()使输入框获得焦点。

这些Hooks可以根据实际需求灵活使用,帮助我们实现更便捷、高效的函数组件开发。

相关文章:

react常用的hooks有哪些?

React常用的Hooks包括以下几种&#xff1a; 1.useState&#xff1a;用于在函数组件中创建和管理状态。它返回一个数组&#xff0c;第一个值是当前状态的值&#xff0c;第二个值是更新状态的函数。 使用时&#xff0c;首先通过解构赋值获取状态值和更新函数&#xff0c;并设置初…...

Nacos config 配置中心详解

目录 一、Nacos启动 1.预备环境准备 2.下载编译后压缩包方式 3. 启动服务器 二、 配置管理 多配置格式编辑器 编辑DIFF 示例代码 监听者查询 配置的版本及一键回滚 命名空间管理 登录管理 修改默认用户名/密码方法 关闭登录功能 会话时间 三、启动配置管理 添加依赖&#xff1a…...

C++ UDP通信

#pragma once #ifndef XUDP_H #define XUDP_H#ifdef WIN32 #include <windows.h> #define socklen_t int #else #include <arpa/inet.h> #define closesocket close //替换close函数 #include <unistd.h>#include<iostream> #endifclass XUdp { pub…...

自由程序员想接私活?那你还不得知道这几个接单平台!最后一个就是宝藏!!

相信喜欢搞钱的程序员都知道&#xff0c;平常在平台上接点私活&#xff0c;利用闲暇时间接单是搞钱的常用套路&#xff0c;可是你确定你选对平台了吗&#xff1f;不管你是刚准备接单的小白&#xff0c;还是已经干了一段时间的老油条&#xff0c;都建议你看完本期文章&#xff0…...

二叉树与递归的相爱相杀

数据结构之二叉树 一、基于二叉树的基础操作1.二叉树的构建2.二叉树的遍历①前序遍历&#xff08;深度遍历&#xff09;②中序遍历③后序遍历④层序遍历判断一棵二叉树是否是完全二叉树&#xff08;基于层序遍历的思想&#xff09; 3.二叉树的数量问题①求二叉树结点个数②求二…...

Docker 安装 reids

docker run -itd --name myredis -p 6379:6379 redis --requirepass “123456” --restartalways --appendonly yes...

opensl学习——base16编码解码、base64编码解码、ASCII码表、扩展ASCII码

文章目录 ASCII表概述base家族简单说明 Hex(十六进制)编码、Base32编码、Base64编码、base256编码base16编码与解码base64编码概述转换过程不足 3 字节处理方法例子一,不足3字节&#xff0c;只有一个字节例子二,不足3字节&#xff0c;只有两个字节 base64示例代码1代码分析 acl…...

gazebo各种插件

类别 libgazebo_ros_api_plugin.so&#xff1a;提供与Gazebo仿真环境进行通信的API接口。 libgazebo_ros_block_laser.so&#xff1a;模拟激光传感器的插件。 libgazebo_ros_bumper.so&#xff1a;模拟碰撞传感器的插件。 libgazebo_ros_camera.so&#xff1a;模拟相机传感器的…...

C语言Free空指针会怎样?

在C语言中&#xff0c;使用free函数释放一个空指针是安全的&#xff0c;不会引发任何错误或异常。具体来说&#xff0c;当使用free函数释放一个空指针时&#xff0c;free函数会忽略这个空指针&#xff0c;并且不会执行任何操作。这是因为free函数只对有效的指针进行内存释放操作…...

软件测试全套教程,软件测试自学线路图

软件测试&#xff1a; 软件测试是为了发现程序中的错误而执行程序的过程。 通俗的说&#xff0c;软件测试需要在发布软件之前&#xff0c;尽可能的找软件的错误&#xff0c;尽量避免在发布之后给用户带来不好的体验&#xff0c;并要满足用户使用的需求。 现在市面上这么多软…...

禁止浏览器缩放

禁止浏览器缩放 1. 页面中添加如下代码&#xff1a;2. css单位统一使用rem&#xff0c;如下&#xff1a; 两个条件即可实现&#xff1a; 1. 动态修改html属性fontsize的值&#xff1b; 2. css单位统一使用rem。 1. 页面中添加如下代码&#xff1a; // 定义基准字体 new functi…...

前端食堂技术周刊第 100 期:TS 5.3 Beta、ViteConf2023、Rspress 1.0、Fresh 1.5、Chrome 118

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;乌龙金桂 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看下…...

汇川IT7000系列HMI使用脚本实现画面跳转时自动切换手自动模式

汇川IT7070E工业HMI使用实例(1) 用脚本切换模式 我们在使用工业HMI做画面时,可能会有这样的需求,希望切换画面时,可以根据不同的画面,自动切换相应的模式,比如有些画面是进行手动操作的,有些画面是进行自动操作的,当我们需要手动时,希望进入画面自动切换为“手动模…...

FDTD Solutions笔记

FDTD Solutions笔记 目录使用流程实例 目录 使用流程 实例 材料条件 步骤 基底 2. 添加规则膜层 3. 添加仿真区 解释&#xff1a; 仿真区为&#xff08;0,0&#xff09;&#xff0c;x方向为0.4&#xff0c;y方向是1 解释&#xff1a; 一般先用低精度进行计算 解释&#xff1a…...

SQL SELECT DISTINCT(选择不同) 语法

SQL SELECT DISTINCT 语法 SELECT DISTINCT语法用于仅返回不同的&#xff08;different&#xff09;值。 在一张表内&#xff0c;一列通常包含许多重复的值; 有时你只想列出不同的&#xff08;different&#xff09;值。 SELECT DISTINCT语句用于仅返回不同的&#xff08;diffe…...

常见的数据结构及应用

文章目录 前言数据结构介绍数组链表队列和栈树堆 总结 前言 数据结构是计算机存储、组织数据的方式。在工作中&#xff0c;我们通常会直接使用已经封装好的集合API&#xff0c;这样可以更高效地完成任务。但是作为一名程序员&#xff0c;掌握数据结构是非常重要的&#xff0c;…...

基于模型预测人工势场的船舶运动规划方法,考虑复杂遭遇场景下的COLREG(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

【UE5 Cesium】19-Cesium for Unreal 建立飞行跟踪器(4)

遗留问题 在上一篇博客中&#xff08;【UE5 Cesium】18-Cesium for Unreal 建立飞行跟踪器&#xff08;3&#xff09;&#xff09;&#xff0c;我们实现了飞机变速飞行的功能&#xff0c;但是还存在两个问题&#xff0c;分别是&#xff1a; &#xff08;1&#xff09;由于UE的…...

TrustZone

TrustZone技术 让我们从最重要的问题开始&#xff1a;为什么存在TrustZone技术&#xff0c;它防御什么&#xff1f;保护用 C 和 C 编写的大型程序免受黑客攻击可能是一个挑战。内存损坏漏洞是一个常见问题&#xff0c;尽管消除它们是安全工程师的核心目标&#xff0c;但从操作…...

✔ ★【备战实习(面经+项目+算法)】 10.16学习时间表(总计学习时间:5h)

✔ ★【备战实习&#xff08;面经项目算法&#xff09;】 坚持完成每天必做如何找到好工作1. 科学的学习方法&#xff08;专注&#xff01;效率&#xff01;记忆&#xff01;心流&#xff01;&#xff09;2. 每天认真完成必做项&#xff0c;踏实学习技术 认真完成每天必做&…...

【习题05】求n的阶乘

题目&#xff1a; 分别利用递归和非递归的方法求n的阶乘 1、题目分析 规定&#xff1a;0的阶乘为1。 非递归&#xff1a; 我们先列举几个求阶乘的案例&#xff0c;从中找寻规律。 0&#xff01; 11&#xff01; 12&#xff01; 1 * 23&#xff01; 1 * 2 * 3 从上述几个例子可…...

ElevenLabs支持闽南语吗?福建话语音合成实测:从API调用到音色克隆的7步通关手册

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs福建话语音支持现状与能力边界 ElevenLabs 目前尚未在官方语音模型库中提供对福建话&#xff08;含闽南语、闽东语等分支&#xff09;的原生支持。其公开文档与 API 文档均未列出任何以“Fuj…...

NY382固态MT29F32T08GSLBHL8-24QM:B

NY382固态MT29F32T08GSLBHL8-24QM:B当工业设备在极端环境下稳定运行&#xff0c;其核心存储的每一次数据读写&#xff0c;都决定着生产线的效率与安全。一颗看似平凡的存储芯片&#xff0c;背后是无数工程师在稳定性、耐久性与环境适应性之间的精妙权衡。今天&#xff0c;我们聚…...

PS左边工具栏不见了?最全恢复解决教程

在使用Photoshop进行修图、设计操作时&#xff0c;左侧工具栏作为核心功能面板&#xff0c;承载着选区、绘画、修图等常用工具&#xff0c;一旦莫名消失&#xff0c;会直接中断操作、影响效率。很多新手遇到这种情况会手足无措&#xff0c;其实无需慌张&#xff0c;今天就给大家…...

知识竞赛电子计分板 vs 手工计分板:差距有多大

知识竞赛电子计分板 vs 手工计分板&#xff1a;差距有多大 无论是学校班级的趣味问答&#xff0c;还是企业年会、电视直播的知识竞赛&#xff0c;计分板都是整场活动的核心视觉焦点。传统的手工计分板&#xff08;如白板、翻牌、纸质表格&#xff09;曾陪伴我们多年&#xff0c…...

在多元市场中的数据角色招聘与面试

原文&#xff1a;towardsdatascience.com/the-two-sides-of-hiring-recruiting-vs-interviewing-for-data-roles-in-diverse-markets-f65b49990687 招聘桌两边的故事 我有在招聘桌两边的故事&#xff0c;有些是成功的&#xff0c;有些则不那么成功。 例如&#xff0c;我可以告…...

经手100万+终端后,聊聊校园门锁Sub-1G和Cat.1怎么选

做校园联网门锁项目的人大概都遇到过这个纠结&#xff1a;组网方案到底选Sub-1G还是4G Cat.1&#xff1f;我们团队&#xff08;KEENZY中科易安&#xff09;经手了100万在线终端的运行数据&#xff0c;可以明确地说——两种方案没有绝对的优劣&#xff0c;只有场景是否匹配。选错…...

为什么你需要英雄联盟Akari助手:3个步骤提升游戏效率的完整指南

为什么你需要英雄联盟Akari助手&#xff1a;3个步骤提升游戏效率的完整指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中繁…...

抖音批量下载终极指南:如何用开源工具高效采集视频素材

抖音批量下载终极指南&#xff1a;如何用开源工具高效采集视频素材 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

影刀RPA 企业级专题篇:自动化系统中的日志平台与链路追踪设计实践

影刀RPA 企业级专题篇&#xff1a;自动化系统中的日志平台与链路追踪设计实践 作者&#xff1a;林焱 很多自动化系统在小规模阶段。 其实不太依赖“日志体系”。 流程跑起来。 失败了看一下控制台。 基本就够用了。 但当系统进入企业级规模以后。 日志会从“辅助功能”…...