React Hook 内置 API 指南 非常详细_react的use的hook函数内置有哪些-程序员宅基地

技术标签: 技术  

React Hook 内置 API 指南 非常详细,不太会用这个编辑器

一、API 列表
二、基本 Hook
1、useState
1、通过 function 更新 state
2、注意:
3、延迟初始化
2、useEffect
1、清理 effect
2、effect 的时间
3、有条件的触发 effect
3、useContext
二、附加 Hook
1、useReducer
1、延迟初始化
2、useCallback
注意:
3、useMemo
注意:
4、useRef
5、useImperativeMethods
6、useLayoutEffect
TIP

功能快捷键

一、API 列表
React 内置的 Hook 如下:

基础 Hook:

useState
useEffect
useContext
其他 Hook:

useReducer
useCallback
useMemo
useRef
useImperativeMehtods
useLayoutEffect
二、基本 Hook
1、useState
const [state, setState] = useState(initialState);
useState 返回一个状态值变量,以及一个更新这个状态的方法。

在初始渲染期间,返回的 state 与作为第一个参数 initialState 传递的值相同。

setState 函数用于更新 state,它接受一个新的状态值,并将组件的 re-render 排入队列中。

setState(newState);
在后面的 re-render 期间,useState 返回的第一个值将始终是应用更新之后的最新 state。

1、通过 function 更新 state
如果使用先前 state 计算新的 state,则可以将一个函数传递个 setState。该函数将接收之前的值,并返回更新的值。下面是一个使用两种形式的 setState 的计数器组件的示例:

function Counter({initialCount}) {
const [count, setCount] = useState(initialCount);
return (
<>
Count: {count}
<button onClick={() => setCount(0)}>Reset
<button onClick={() => setCount(prevCount => prevCount + 1)}>+
<button onClick={() => setCount(prevCount => prevCount - 1)}>-
</>
);
}
“+” 和 “-” 按钮使用 function 形式,因为更新的值基于先前的值,但 “重置” 按钮使用普通的形式,因为它总是将计数设置回0。

2、注意:
和类组件中的 setState 方法不同,useState 不会自动合并更新对象。你可以通过将函数 updater 表单与对象扩展语法组合来复制此行为:

setState(prevState => {
// 也可以使用 Object.assign
return {…prevState, …updatedValues};
});
另一个选项是使用 useReducer,它更适合管理包含多个子值的 state 对象。

3、延迟初始化

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36586702/article/details/84893841

智能推荐

psql: error: connection to server on socket “/opt/postgresgl/pgdata/.s.PGSQL.5432“ failed_psql: error: connection to server on socket "/var/-程序员宅基地

文章浏览阅读3.1k次。psql: error: connection to server on socket "/opt/postgresql/pgdata/.s.PGSQL.5432" failed: 没有那个文件或目录。PostgreSQL数据库psql连接报错connections on Unix domain socket “/opt/postgresgl/pgdata/.s.PGSQL.5432“?1.查看查看参数unix_socket_directories。重新postgreSQL服务,问题解决。_psql: error: connection to server on socket "/var/run/postgresql/.s.pgsql.54

树莓派3 ROS语音包开发之音频采集_树莓派收集声音-程序员宅基地

文章浏览阅读9.8k次。树莓派3 ROS语音包开发之音频采集谈到语音交互,简单步骤你我都能想到,无非就是以下几个步骤:1、语音采集 2、语音识别 3、语义理解 4、语音合成之前移植了ROS代码包,很多语音交互方面只有英文,对于中文识别来说,想要找到恰当的包比较困难,其中的难点接下来会一一来探究并找出相应的办法。该博客先不讨论后续内容,现在只着重介绍步骤一,即音频采集。音频采集首先要了解_树莓派收集声音

Noip DP 总结 1_noi dp-程序员宅基地

文章浏览阅读461次。对各位学NOI的大佬对于DP的总结的总结。———-DP数据范围:———1} 15,20 -> 状压/暴搜2} 30 -> 折半搜索-二分搜索3} 50 -> N^4 DP4} 100~200 -> Floyed,图论等5} 1000~2000 -> N^2 DP6} 1e5 -> ……可能不是DP7} 1e6_noi dp

JS数组中 reduce() 方法 数组对象去重_js使用reduce去重-程序员宅基地

文章浏览阅读2.5k次,点赞3次,收藏8次。参考引用:数组里面对象去重的3种方法: https://blog.csdn.net/l284969634/article/details/91397332js数组去重的多种方法: https://blog.csdn.net/linglingzi001/article/details/107772411JS中reduce方法: https://blog.csdn.net/hope93/article/details/86528183Array.reduce()方法解析: https://blog.cs_js使用reduce去重

深入浅出分析Electron打包插件electron-builder配置_electron-builder 固定 打包版本-程序员宅基地

文章浏览阅读1.7k次。```json{ "name": "Umeet", // 产品名称 "version": "3.2.0", // 产品版本 "private": true, // 是否私有 "main": "./src/main.js", // 程序入口文件 "author": { // 发布者信息 win-属性可见,mac在关于Umeet中可见 "name": "SYSTEC" }, "desc._electron-builder 固定 打包版本

2021年REITs行业发展研究报告_千际投行-程序员宅基地

文章浏览阅读4.3k次。第一章 行业概况REITs(Real Estate Investment Trusts,即不动产投资信托基金)是以发行收益凭证的方式募集投资者的资金,主要以能够产生相对稳定收益的不动产为投资标的,由专业团队经营管理,以标的不动产产生的收益为主要收入来源,并且将绝大部分收益分红给投资者的一种信托基金。自20世纪60年代在美国推出以来,已有40多个国家(地区)发行了该类产品,其投资领域由最初的房地产拓宽到酒店商场、工业地产、基础设施等,已成为专门投资不动产的成熟金融产品。按照GICS行业分类标准(2016年8月_千际投行

随便推点

C语言中32个关键字详解_ansi c32个关键字的意思-程序员宅基地

文章浏览阅读2.1w次,点赞147次,收藏1.1k次。标准C语言的32个关键字_ansi c32个关键字的意思

Windows程序设计第五版源代码---BEEPER2_vc程序设计 第5版-程序员宅基地

文章浏览阅读171次。源代码如下:#include <windows.h>#define ID_TIMER 1 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);VOID CALLBACK TimerProc(HWND, UINT, UINT, DWORD);int WINAPI WinMain(HINSTANCE hInstance..._vc程序设计 第5版

深度相机工作原理_深度相机原理-程序员宅基地

文章浏览阅读4.1k次。转自:https://blog.csdn.net/electech6/article/details/78707839结构光法:为解决双目匹配问题而生深度图效果:结构光vs.双目投射图案的编码方式 直接编码 ..._深度相机原理

斐讯 N1 降级、刷机及 Armbian 安装 [2019.7.23]_斐讯n1官方降级工具-程序员宅基地

文章浏览阅读1.4w次,点赞2次,收藏19次。最前最近捡垃圾不断,之前购买了斐讯遗产 K2P(真香,最近刷了 OpenWrt)、T1(刷了电视盒子)和蜗牛星际(刷了黑群晖),最近又捡了台斐讯 N1,主要用于做一些简单的爬虫和 Adguard Home 服务。其实原先有过一台树莓派 3B,但是 emmmm 吃灰了一年,然后二手卖了。虽然近期树莓派 4 发布了,性能有较大提升,但由于价格的原因,还是 N1 香。刷机过程由于已有的几篇文章有些内容..._斐讯n1官方降级工具

Linux服务器移动文件命令_linux移动文件命令-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏7次。Linux服务器移动文件命令_linux移动文件命令

123-程序员宅基地

文章浏览阅读163次。阵容:4冰川(狂战士4、背叛者1、绝命巫师2、占卜师3) 占4人口3战士(船长4+随便一个战士,有钱就买末日审判官4) 占2人口2术士甚至4术士(灵魂收割4、暗之灵5、不免预言家5) 占1\3人口2刺客(光羽刺客4、幽影刺客3)刺客是有冰川加攻速也很厉害 占2人口阵容核心就是狂战士,2星是基本,3星就无敌。配合暗之灵可以融化对面。曾经的骑士的抗性持续3秒,6骑3龙+暗之灵...

推荐文章

热门文章

相关标签