【React】常用Hook函数的梳理和总结(第二篇)
1. 前言
本篇梳理和总结React中常用的Hook函数。 欢迎大家来到Hook的世界,真的贼好用~
2. 常用Hook函数
| Hook | 说明 | 示例 |
| useState(initialState) | 功能:为函数组件添加状态变量,输入可是基本数据类型或引用数据类型,也可以是不带参数的纯函数,函数返回值作为初始值,输出则是状态和set函数组成的二值数组 输入:State | Function 输出:Array<State | Function> | const [name, setName] = useState(‘Xiaoming’); setName(name => name + 'LI'); |
| useReducer(reducer, initialArg, init?) | 功能:创建一个用于管理状态的reducer,输出则是状态和dispatch函数组成的二值数组 输入: reducer - 用于更新state的纯函数,参数为state和action,返回更新后的state initialArg - 用于初始化state的任意值 init? - 计算初始值的函数,如果存在,init(initialArg)执行结果作为初始值 输出:Array<State | Function> | const [name, dispatch] = useReducer(reducer, {name: 'xiaoming'}) dispatch({name: 'xiaoming'}) |
| useEffect(setup, dependencies?) | 功能:将组件与外部系统同步 输入: setup - 处理Effect的函数,setup函数选择性返回一个清理函数cleanup dependencies - 依赖项数组 输出:undefined | Effect(() => { const connection = createConnection(); connection.connect(); return () => { connection.close(); }; }, []); |
| useLayoutEffect(setup, dependencies?) | 功能:useLayoutEffect是useEffect的一个版本,在浏览器重绘屏幕之前触发。 注:可以影响性能,尽可能用useEffect 输入:同useEffect 输出:同useEffect | <略> |
| useInsertionEffect(setup, dependencies?) | 功能:为CSS-in-JS库的作者特意打造,可以在布局副作用触发之前将元素插入到DOM中 | <略> |
| useMemo(calculateValue, dependencies) | 功能:缓存每次重新渲染都需要计算的结果 输入: calculateValue - 计算缓存值的不带参数的纯函数,返回值可以是任意类型 dependencies - 依赖项数组 输出:返回不带参数调用calculateValue的结果 | const cachedData = useMemo(() => filterTodos(todos, tab), [todos, tab]) |
| useCallback(fn, dependencies) | 功能:缓存每次重新渲染都需要计算的结果 输入: fn - 需要缓存的函数,此函数接受任何参数并返回任何值 dependencies - 依赖项数组 输出:返回传入的fn,依赖项数组改变,则返回本次渲染传入的fn | const handleSubmit = useCallback((orderDetails) => { post('/product/' + productId + '/buy', { referrer, orderDetails, }); }, [productId, referrer]); |
| useRef(initialValue) | 功能:引用一个不需要渲染的值 输入:initialValue - ref对象current属性的初始值,可以是任意类型 输出:{current: any} - 一个属性的对象 | const inputRef = useRef(null); |
| useContext(SomeContext) | 功能:读取和订阅组件中的context 输入:SomeContext - createContext创建的context 输出:返回context的值 | const Context = createContext(/*初始值*/); const value = useContext(Context); |
| useId() | 功能:生成传递给无障碍属性的唯一ID 输入:无 输出:字符串ID | |
| 本篇仅列出几个常用的Hook,还有很多Hook,可以查阅 React 内置 Hook – React 中文文档 | ||
3. 总结
作为开发人员,想要记住所有API是很困难的事情,建议大家学习过程中,多收藏官网或个人整理好的文档,开发过程遇到不会可以查阅API文档。
注:以上,如有不合理之处,还请帮忙指出,大家一起交流学习~
相关文章:
【React】常用Hook函数的梳理和总结(第二篇)
1. 前言 本篇梳理和总结React中常用的Hook函数。 欢迎大家来到Hook的世界,真的贼好用~ 2. 常用Hook函数 Hook说明示例useState(initialState) 功能:为函数组件添加状态变量,输入可是基本数据类型或引用数据类型,也可以是不带参数…...
【JaveWeb教程】(15) SpringBootWeb之 响应 详细代码示例讲解
目录 SpringBootWeb请求响应2. 响应2.1 ResponseBody2.2 统一响应结果2.3 案例2.3.1 需求说明2.3.2 准备工作2.3.3 实现步骤2.3.4 代码实现2.3.5 测试2.3.6 问题分析 SpringBootWeb请求响应 2. 响应 前面我们学习过HTTL协议的交互方式:请求响应模式(有…...
「 PyMuPDF专栏 」PyMuPDF为PDF文件添加注释
文章目录 一、PyMuPDF的安装与基本使用1. 安装PyMuPDF库的方法2. 导入PyMuPDF库二、新建PDF文档1. 创建一个空白的PDF文档三、添加注释1. 导入库并打开PDF文件2. 选择要添加注释的页面3. 创建并添加注释3.1. 文本注释3.1.1. 完整代码3.1.2. 注释效果图3.2. 高亮注释3.2.1. 完整…...
5 - 视图|存储过程
视图|存储过程 视图视图基本使用使用视图视图进阶 存储过程创建存储过程存储过程进阶存储过程参数循环结构 视图 视图是虚拟存在的表 表头下的数据在真表里 表头下的数据存储在创建视图时 在select命令访问的真表里 优点: 安全数据独立简单 用户无需关…...
系统学习Python——警告信息的控制模块warnings:警告过滤器-[基础知识]
分类目录:《系统学习Python》总目录 警告过滤器控制着警告是否被忽略、显示或转为错误(触发异常)。 从概念上讲,警告过滤器维护着一个经过排序的过滤器类别列表;任何具体的警告都会依次与列表中的每种过滤器进行匹配&…...
vue中高德地图使用
1、安装 npm i amap/amap-jsapi-loader --save2、封装地图组件 <template><div id"map" ref"mapcontainer"></div> </template><script> import AMapLoader from "amap/amap-jsapi-loader"; export default {befo…...
算法训练营Day33
#Java #贪心 开源学习资料 Feeling and experiences: 单调递增的数字:力扣题目链接 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于或等于 n 的最大数字&am…...
.net6解除文件上传限制。Multipart body length limit 16384 exceeded
在C#中上传文件时如果不修改默认文件的上传大小会提示Multipart body length limit 16384 exceeded这个错误提示表明你的请求中的Multipart body长度超过了16384字节的限制。这通常意味着你正在尝试发送一个太大的请求体,可能是因为包含了太多数据或者太大的文件。要…...
电子电器架构网络演化 —— 车载以太网TSN
电子电器架构网络演化 —— 车载以太网TSN 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消…...
智能门锁触控工作原理中应用的电容式触摸芯片
智能门锁的识别技术中,密码几乎成为标配功能。相比机械按键的触控方式,电容式触控方式可以在加上一层玻璃甚至金属一体成型之后与用户进行交互,由于进行了物理性隔离,使得外壳更具完整性,物理上安全性更佳。电容式触控…...
Spark 中 BroadCast 导致的内存溢出(SparkFatalException)
背景 本文基于 Spark 3.1.1 open-jdk-1.8.0.352目前在排查 Spark 任务的时候,遇到了一个很奇怪的问题,在此记录一下。 现象描述 一个 Spark Application, Driver端的内存为 5GB,一直以来都是能正常调度运行,突然有一天,报…...
深度学习经典算法详细模型图
很早绘制的一些模型图,当时放在CSDN的草稿里,今天发现了,把它分享出来吧,还能更清晰的帮助理解! 1.AlexNet(2012) 2. VGGNet(2014) 3. SqueezeNet(2016) 4. GoogleNet(2014)...
03、Kafka ------ CMAK(Kafka 图形界面管理工具) 下载、安装、启动
目录 CMAK(Kafka 图形界面管理工具)下载安装启动打开 cmak 图形界面 CMAK(Kafka 图形界面管理工具) Kafka本身并没有提供Web管理工具,而是推荐使用bin目录下各种工具命令来管理Kafka, 这些工具命令其实用起…...
复习python从入门到实践——函数function
复习python从入门到实践——函数function 函数是特别难的,大家一定要好好学、好好复习、反复巩固。函数没学好,会为后面造成很大困扰。 教科书中函数举例会稍微有点复杂。在此章复习中,我将整理出容易疏漏和混淆的知识点,并用最简…...
【Internal Server Error】pycharm解决关闭flask端口依然占用问题
Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. 起因: 我们在运行flask后,断开服务依然保持运行࿰…...
torch.nn.functional.interpolate与torchvision.transforms.Resize方法对张量图像Resize应用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、非张量数据使用torch方法resize(transforms.Resize)二、张量数据使用torch方法resize(torch.nn.functional.interpolate) 前言 要使用 PyTorch 对张量进行…...
【Spring】Spring的事务管理
前言: package com.aqiuo.service.impl;import com.aqiuo.dao.AccountMapper; import com.aqiuo.pojo.Account; import com.aqiuo.service.AccountService; import org.springframework.jdbc.core.JdbcTemplate;import java.sql.Connection; import java.sql.SQLEx…...
配置cendos 安装docker 配置阿里云国内加速
由于我安装的cendos是镜像版。已经被配置好了。所以只需要更新相关配置信息即可。 输入 yum update自动更新所有配置 更新完成后输入 yum list docker-ce --showduplicates | sort -r 自动查询所有可用的docker版本 输入 yum install docker-ce docker-ce-cli container…...
【深度学习:Domain Adversarial Neural Networks (DANN) 】领域对抗神经网络简介
【深度学习:Domain Adversarial Neural Networks】领域对抗神经网络简介 前言领域对抗神经网络DANN 模型架构DANN 训练流程DANN示例 GPT示例 前言 领域适应(DA)指的是当不同数据集的输入分布发生变化(这种变化通常被称为共变量变…...
STM32 ESP8266 物联网智能温室大棚 (附源码 PCB 原理图 设计文档)
资料下载: https://download.csdn.net/download/vvoennvv/88680924 一、概述 本系统以STM32F103C8T6单片机为主控芯片,采用相关传感器构建系统硬件电路。其中使用DHT11温湿度传感器对温度和湿度的采集,MQ-7一氧化碳传感器检测CO浓度,GP2Y101…...
算法复杂度理论的边界与不可计算性探讨的技术7
引言算法复杂度理论的核心问题与意义边界与不可计算性研究的动机文章结构概述计算模型与复杂度类图灵机与计算模型的形式化定义复杂度类(P、NP、PSPACE、EXP等)的关系与层次归约与完全性问题(如NP完全性)复杂度理论的边界时间与空…...
用PHP搞定TikTok搜索数据抓取:手把手教你绕过x-bogus签名验证(附完整Node.js联动代码)
PHP与Node.js协同破解TikTok搜索数据抓取难题:x-bogus签名实战指南 当后端开发者需要处理前端加密算法时,技术栈的边界往往变得模糊。本文将带你深入探索如何用PHP作为主力语言,巧妙整合Node.js的JavaScript执行能力,构建一个稳定…...
终极指南:如何用 ts-jest 突破大型 TypeScript 项目内存瓶颈
终极指南:如何用 ts-jest 突破大型 TypeScript 项目内存瓶颈 【免费下载链接】ts-jest A Jest transformer with source map support that lets you use Jest to test projects written in TypeScript. 项目地址: https://gitcode.com/gh_mirrors/ts/ts-jest …...
Infineon AURIX TC3xx安全看门狗定时器(WDT)配置实战:从寄存器设置到避坑指南
Infineon AURIX TC3xx安全看门狗定时器配置深度解析 1. 理解TC3xx安全看门狗的核心机制 在汽车电子和工业控制系统中,看门狗定时器(WDT)是确保系统可靠性的最后一道防线。Infineon AURIX TC3xx系列微控制器采用了独特的多层看门狗架构,将安全性与灵活性完…...
Windows网络编程避坑:Pcap4j抓包前,如何快速识别并绑定正确的物理网卡?
Windows网络编程实战:精准识别物理网卡的高效方法论 每次在Windows环境下进行网络抓包时,你是否也经历过这样的挫败感?明明代码逻辑正确,过滤器设置无误,却始终捕获不到预期的数据包。问题的根源往往在于——选错了网卡…...
工业软件集成AI:SolidWorks设计文档的智能语义检索方案
工业软件集成AI:SolidWorks设计文档的智能语义检索方案 你是不是也遇到过这种情况?面对公司服务器里堆积如山的SolidWorks设计文件、零件清单和工程变更记录,想找一个符合特定要求的历史设计参考,或者查一下某个零件的详细规范&a…...
SiameseAOE模型在Keil5开发STM32项目中的应用:注释文档智能分析
SiameseAOE模型在Keil5开发STM32项目中的应用:注释文档智能分析 如果你用过Keil5做STM32开发,肯定对写代码注释这件事又爱又恨。爱的是,清晰的注释能让几个月后的自己,或者接手项目的同事,快速理解代码意图࿱…...
Protege批量导入Individuals实例的3种方法(附Python脚本)
Protege高效批量导入Individuals实例的工程化实践 在知识图谱构建过程中,Protege作为本体编辑的标准工具,其Individuals实例的手动添加方式常常成为效率瓶颈。当面对数百甚至上千个实体需要导入时,传统点击操作不仅耗时耗力,还容易…...
YOLO-v5效果实测:对比不同模型变体,找到性价比最高的方案
YOLO-v5效果实测:对比不同模型变体,找到性价比最高的方案 1. 引言:为什么需要对比YOLO-v5变体? 在目标检测领域,YOLO系列模型一直以"快准狠"著称。作为该系列的最新代表作,YOLO-v5提供了从超轻…...
海康监控RTSP流在uniapp video里播放不稳定的?试试这几个优化策略(含内存泄漏排查)
海康监控RTSP流在uniapp video组件中的稳定性优化实战指南 当我们在uniapp中集成海康监控视频播放时,经常会遇到黑屏、卡顿甚至长时间运行后崩溃的问题。这些问题的根源往往不在于基础功能的实现,而是隐藏在RTSP流传输、视频组件优化和内存管理中的细节陷…...
