当前位置: 首页 > 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;踏实学习技术 认真完成每天必做&…...

阿里开源万物识别镜像实战:3步完成图片识别环境配置与调用

阿里开源万物识别镜像实战&#xff1a;3步完成图片识别环境配置与调用 1. 引言&#xff1a;让图片识别变得简单 想象一下&#xff0c;你刚拍了一张照片&#xff0c;里面有各种物品&#xff1a;手机、水杯、笔记本电脑、宠物狗...如果有一个工具能自动识别出照片里的所有物体&…...

别再死记硬背了!用Codesys可视化玩转按钮和指示灯:5个工业场景实战案例拆解(含配方管理思路)

Codesys可视化实战&#xff1a;5个工业场景下的按钮与指示灯高阶应用 在工业自动化领域&#xff0c;人机界面(HMI)的设计直接影响操作效率和系统可靠性。传统PLC编程往往过于关注功能实现而忽视交互体验&#xff0c;导致许多工业现场的操作面板充斥着杂乱无章的按钮和难以理解的…...

Spire.Doc转PDF授权限制解析与解决方案

1. Spire.Doc转PDF的三页限制是怎么回事 第一次用Spire.Doc转换PDF时&#xff0c;我盯着生成的3页文档愣了半天——明明50页的Word文件&#xff0c;怎么输出就只剩个开头了&#xff1f;后来查文档才发现&#xff0c;这是未授权版本的硬性限制。就像试用版软件经常会有功能阉割&…...

Go Routine 调度与系统线程分析

Go语言凭借其轻量级的并发模型在开发者中广受欢迎&#xff0c;而Go Routine作为其核心并发机制&#xff0c;与系统线程的交互方式一直是性能优化的关键。本文将深入分析Go Routine的调度原理及其与系统线程的关系&#xff0c;帮助开发者理解高并发场景下的底层运行机制&#xf…...

seo关键词买量报价是多少_seo关键词推广报价是多少

SEO关键词买量报价是多少_SEO关键词推广报价是多少 在当前的数字营销环境中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为企业提升网站流量和品牌知名度的重要手段。其中&#xff0c;关键词买量报价和关键词推广报价是两个关键概念&#xff0c;对于企业进行SE…...

PX4飞控自定义Mavlink消息:实现UART传感器数据在QGC地面站的可视化

1. 为什么需要自定义Mavlink消息 在无人机开发中&#xff0c;我们经常需要将各种传感器数据实时传输到地面站进行监控和分析。PX4飞控虽然内置了丰富的标准Mavlink消息&#xff0c;但当我们接入一些特殊传感器时&#xff0c;标准消息往往无法满足需求。比如你想通过UART串口接入…...

OpenClaw调试技巧:Qwen3.5-9B任务失败的根本原因分析

OpenClaw调试技巧&#xff1a;Qwen3.5-9B任务失败的根本原因分析 1. 问题背景&#xff1a;当OpenClaw遇上Qwen3.5-9B 上周我尝试用OpenClaw自动化处理一批技术文档&#xff0c;对接的是本地部署的Qwen3.5-9B模型。本以为有了这个90亿参数的"大杀器"&#xff0c;任务…...

SinricPro_Generic库:多平台MCU接入Alexa的嵌入式通信框架

1. SinricPro_Generic 库深度技术解析&#xff1a;面向多平台嵌入式设备的 Alexa 智能家居接入方案1.1 库定位与核心价值SinricPro_Generic是一个高度工程化的、面向生产环境的嵌入式 IoT 通信中间件&#xff0c;其核心使命是将资源受限的微控制器&#xff08;MCU&#xff09;无…...

C# WinForm 系统参数设置功能完整实现

在工业上位机、客户端工具开发中&#xff0c;系统参数配置是必备基础功能。本文用一套完整可运行的代码&#xff0c;带你实现 WinForm INI 配置文件的参数设置&#xff1a;自动生成配置、读取加载、界面编辑、保存生效&#xff0c;全程逻辑清晰、注释详细&#xff0c;可直接落…...

药流和人流哪个恢复快?术后修护行业洞察与实用指南

意外怀孕后&#xff0c;药流和人流的恢复差异及术后修护&#xff0c;是女性关注的核心话题&#xff0c;也是孕产修护领域的重点议题。术后修护作为缩短恢复周期、减少并发症的关键&#xff0c;其科学合理性直接影响女性生殖健康。本文结合行业现状与实用经验&#xff0c;探讨药…...