useState是怎么回事?

2023-12-30 18:32
文章标签 怎么回事 usestate

本文主要是介绍useState是怎么回事?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Hooks意为钩子,React Hooks就是一堆钩子函数,React通过这些钩子函数对函数型组件进行增强,不同的钩子函数提供了不同的功能。钩子函数有一个特点,都是以use开头。

为函数组件提供状态

useState函数的内部是使用闭包来实现函数保存状态数据的。

useState的返回值是什么?

返回值是一个数组,数组的第一项是状态数据,第二项是设置状态数据的方法,关于这个第二项的命名,我们一般采用set+状态数据名的方法,请看下面的例子。

const [count,setCount] = useState(0);

useState的细节

  1. 接收唯一的参数即状态初始值,初始值可以是任意数据类型。
  2. 返回值为数组,数组中存储状态值和更改状态值的方法,方法名称约定以set开头,后面加上状态名称。
  3. 方法可以被调用多次,用以保存不同的状态值。
  4. 参数可以是一个函数,函数返回什么,初始状态就是什么,函数只会被调用一次,用在初始值是动态值的情况。
function App(props) {const [count,setCount] = useState(() => {return props.count || 10;});const [person,setPerson] = useState({name: 'justin'})return (<div><span>{count},{person.name}</span><br /><button onClick={() => setCount(count + 1)}>+1</button><button onClick={() => setPerson({name: '国家'})}>点击切换name</button></div>)
}

useState更新状态时是异步的

function App(props) {const [count,setCount] = useState(0);const [person,setPerson] = useState({name: 'justin'})function handleCount() {setCount(() => {return count + 1;})console.log(count);   // 打印的是0,说明是异步的}return (<div><span>{count},{person.name}</span><br /><button onClick={handleCount}>+1</button><button onClick={() => setPerson({name: '国家'})}>点击切换name</button></div>)
}

读取state

在class的写法中,读取state需要使用this.state,但是在hook写法中,只需要直接使用状态的变量名即可。

为什么叫useState而不叫createState?

因为Create一词并不是很准确,因为state只在组件首次渲染的时候被创建,在下一次重新渲染的时候,useState返回给我们当前的state。

这篇关于useState是怎么回事?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/553663

相关文章

ReentrantLock可重入锁又是怎么回事?

前言:有关Synchronized锁的知识可以参考我上篇写的内容synchronized必知必会的知识点 一:ReentrantLock的实现原理 锁的实现原理基本是为了达到一个目的:让所有的线程都能看到某种标记。Synchronized通过在对象头中设置标记实现了这一目的,是一种/原生的锁实现方式,而ReentrantLock以及所有的基于LocK接口的实现类,都是通过用一个volitl

msvcp120.dll丢失是怎么回事?几种靠谱修复msvcp120.dll的方法

在使用基于Windows的计算机进行日常工作或娱乐时,您可能会遇到一个错误消息:“无法启动此程序,因为计算机中丢失msvcp120.dll。”这样的提示通常在尝试启动某些程序或游戏时弹出,导致应用无法正常运行。这个问题通常与系统中的某个重要文件——msvcp120.dll有关,这是一个关键的系统文件,属于Microsoft Visual C++ 2013 Redistributable包的一部分。

react 中的useState useEffect

下面的这些hook我们常用的一些 useState  useEffect useCallback、useMemo、useRef 和 useContex 下一个文章中讲述(useCallback、useMemo、useRef 和 useContex) 下面我将讲解什么时候使用是最好的 首先我们需要明确的一点是,这些hook都是在做缓存。 目录 Hooks 是如何诞生的? useStat

GC终结标记 SuspendEE 是怎么回事

一:背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题,在 !t -special 输出中有一个 SuspendEE 字样,这个字样在 coreclr 中怎么弄的?输出如下: 0:000> !t -specialThreadCount: 3UnstartedThread: 0BackgroundThread: 2PendingThread: 0De

【翻译】微软对 Rust 的热爱是怎么回事?

原文地址:https://visualstudiomagazine.com/articles/2020/06/02/rust-love.aspx?m=1原文作者:David Ramel (06/02/2020)译者:【 Jancd 】校对:【 Rust 日报小组 】 微软已经管理了几种流行的编程语言 - C#,TypeScript,F#,那为什么微软也和广大开发者一样也喜欢 Rust 呢?

速盾:阿里云ddos黑洞是怎么回事?

阿里云ddos黑洞是一种防御分布式拒绝服务(DDoS)攻击的安全机制。DDoS攻击是指利用大量的合法请求占用目标服务器的资源,从而使服务器无法正常响应合法用户的请求。为了应对这种攻击,阿里云引入了黑洞机制。 黑洞机制是一种主动防御策略,可以将DDoS攻击的流量直接引导到黑洞地址,从而保护目标服务器的正常运行。当检测到DDoS攻击流量时,阿里云会将目标IP地址的流量重定向到一个特殊的黑洞地址。这个

【React】useState 的原理

useState 是 React Hooks 中的一个核心函数,用于在函数组件中添加和管理状态。以下是 useState 的原理及其工作方式的详细解释: 1. 基本概念 useState 允许你在函数组件中添加 state。它接受一个参数,这个参数是 state 的初始值。useState 返回一个包含两个元素的数组: 第一个元素是当前的 state。第二个元素是一个可以更新这个 state

系统报错vcruntime140_1.dll文件缺失怎么回事?多种解决方法让你对比

一、vcruntime140_1.dll常见问题与错误信息 错误信息类型 启动错误:应用程序在启动时提示缺少 vcruntime140_1.dll 文件。 运行时错误:应用程序在运行过程中突然崩溃,提示 vcruntime140_1.dll 错误。 兼容性错误:新旧版本的 Visual C++ Redistributable 导致应用程序无法识别 vcruntime140_1.dll。

电脑缺失d3dx9_43.dll是怎么回事,总结5种实测有效的解决方法

电脑在使用过程中偶尔会遇到一些问题,其中之一就是缺失d3dx9_43.dll文件。那么,电脑缺失d3dx9_43.dll​是怎么回事呢?本文将从多个方面进行详细描述,帮助大家更好地了解这个问题。   一,d3dx9_43.dll文件的概述 d3dx9_43.dll 是 Microsoft DirectX 的一个关键组件,属于动态链接库(DLL)文件。DirectX 是微软开发的一套

【react】useState 使用指南

React的useState是函数组件中用于管理状态(state)的Hook。以下是关于useState的使用指南,结合参考文章中的信息,以清晰、分点的方式表示: 1. 基本概念 useState是React函数组件中用于管理状态(state)的Hook。它接受一个初始状态值,并返回一个包含当前状态和一个用于更新该状态的函数的数组。 2. 定义和使用useState 基本语法: im