状态:组件的内存
改变的UI界面内容,用户的操作行为,当前输入的值。在 React 中,这种特定于组件的内存称为状态。
但是在组件内设置局部变量是行不通的。
- 局部变量不会在渲染之间持续存在。当 React 第二次渲染此组件时,它会从头开始渲染它 - 它不会考虑对局部变量的任何更改。
- 对局部变量的更改不会触发渲染。React 没有意识到它需要用新数据再次渲染组件。
useState 钩子提供了这两件事:
-
用于保留渲染之间数据的状态变量。
-
一个状态设置函数,用于更新变量并触发 React 再次渲染组件。
import { useState } from 'react'; export default function Gallery() { const [index, setIndex] = useState(0); function handleClick() { setIndex(index + 1); } return ( <> // onClick={handleClick} <> ) }
useState 解析:
当你调用 useState 时,React 让这个组件记住一些东西。
每次你的组件渲染时,useState 都会为你提供一个包含两个值的数组:
- 状态变量 (
index) 以及你存储的值。 - 状态设置函数(
setIndex),可以更新状态变量并触发 React 再次渲染组件。
而React 也可以调用多个状态管理器,React 按顺序匹配,React 为每个组件保存一组状态对。它还维护当前对索引,该索引在渲染前设置为 0。每次调用 useState 时,React 都会为你提供下一个状态对并递增索引。