| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> React State -> 正文阅读 |
|
[JavaScript知识库]React State |
State是组件的内存网页交互过程中,组件通常需要根据交互来更改屏幕上显示的内容。输入表单应该更新输入字段,单击图像轮播上的“下一步”应该更改显示的图像,单击“购买”应该将产品放入购物车。组件需要记住一些特定的值,当前所发生的交互变化,用于储存这种变化的叫做State
这是一段JSX代码,按理来说在渲染过后会出现一个NextButton和一个数字,点击Button以后数字值会增加1,但是实际点击过后页面上的数字0并不会跳转到1. handleClick()更新局部变量
要使用新数据更新组件,需要做两件事:
useStateHook 提供了这两件事:
? useState()?useState是一个 React Hook,它让组件“记住”一些信息(State)。它返回两个值:当前状态和可用于更新它的函数。
您可以通过三个步骤向组件添加状态: State是组件的内存。状态变量允许您保存一些随时间变化的信息,并且只限定于于你的组件。上图中,count保存点击次数。你可以将任何 JavaScript 值保持在State - 例如,当前输入文本、选定的图库图像或购物车的内容。
对于这一段代码,效果于第一段没有使用State的代码大致相同,但是,在这个组件所渲染的页面中,单击Button时count值会实时变化渲染,这是因为使用了state,React知道它需要重新将新的值渲染到当前的页面上 useState的作用当你调用 时useState,你是在告诉 React 你希望这个组件记住一些东西:
在这种情况下,您希望 React 记住index. 惯例是将这对命名为const [thing, setThing]. 您可以将其命名为您喜欢的任何名称,但约定使跨项目的事情更容易理解。 useState唯一的参数是你的状态变量的初始值。在此示例中,index的初始值设置0为 useState(0)。 每次渲染组件时,useState都会为您提供一个包含两个值的数组:
当这段代码打入后会发生的情况:?
如果你有两个相同的组件调用,他们的State的值是独立的,一个组件的State值改变不会影响到另一个组件 声明State您可以在一个组件中声明多个State变量。您必须在组件的顶层声明它们,在任何条件或循环语句之外。该组件声明状态变量称为name和age: ?这使得组件可以“记住”多个独立的事物State——例如,不同的表单字段。
? ?在这个例子中,我们有两个State,分别是name和age,我们在表单中输入相你想输入的名字,onChange触发name的set函数setName将输入的值设定为name的值,然后value属性获取name赋给表单更新输入框内容,同时更新下方渲染的名字。按下button使得age值加1,使得下方的年龄数也得到更新。 什么时候不需要使用
更新状态中的对象和数组你也可以保持对象和数组的状态。但是,您应该始终替换状态中的对象,而不是修改现有对象。更新对象和更新数组描述了有助于避免错误的常见模式。
特别情况将相同的值传递给 setState如果将当前状态传递给setState,React将跳过重新渲染组件:
这是性能优化。React 使用Object.is()算法来比较这些值。 将更新程序函数传递给setState您可以将函数传递给setState. 这样的函数,就像在这个例子中一样,被称为“更新器”。React 将在下一次渲染期间调用您的更新程序来计算最终状态。 ?此文章来源于React新文档React 中文文档(Beta 版) | React 中文文档 | React 中文网 |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 12:56:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |