Coursera 笔记

Module 02 · Understanding Function Components with Array and DOM Manipulation函数组件、数组与 DOM 操作

State Management in Function Components函数组件中的状态管理

Coursera ↗

欢迎来到 函数组件中的状态管理 视频课程!通过观看本视频,你将能够:

  • 解释 状态管理 的概念
  • 说明状态管理在开发函数组件时的价值
  • 描述 useState hook 的语法
  • 使用 useState hook 操作组件的状态

什么是状态管理?

在 React 中,状态(state)用于管理组件内随时间变化的数据。一个组件的 状态 表示该组件在特定时刻的状态,它包含影响组件行为和渲染的数据。

状态管理的必要性

  • 在 React 中,函数组件之前没有管理状态的能力。现在,通过 hooks,函数组件具备了本地状态管理功能。使用 useState hook,可以让你更灵活地控制组件的状态。

使用 useState 管理状态

在函数组件中,useState 是一个常用的 hook,它允许你为组件添加状态管理功能。useState 返回一个包含两个值的数组:当前状态的值和一个更新状态值的函数。

useState 语法

你可以按照如下方式使用 useState:

const [stateName, setStateName] = useState(initialState);
  • stateName:表示组件当前的状态。
  • setStateName:用于更新 stateName 的函数。

详细解析

解构赋值

  • useState 返回一个包含两个值的数组。使用 数组解构赋值,你可以将这两个值分别赋给 stateName 和 setStateName 变量。
  • 数组解构使得你能够简洁地提取数组元素,避免了反复索引。

操作组件状态

  • stateName 存储组件当前的状态,你可以随时访问它并进行修改。
  • setStateName 是更新状态的函数。当调用它时,React 会重新渲染组件,并更新界面。


代码示例:基本状态管理

让我们通过一个简单的示例来演示 useState 的使用:

在此例中,初始状态为 "The name is John"。当用户点击按钮后,状态更新为 "The name is John Doe"。

StateManagement 组件代码

import React, { useState } from 'react';

function StateManagement() {
  const [name, setName] = useState("John");

  const updateName = () => {
    setName("John Doe");
  };

  return (
    <>
      <h1>State Management using useState</h1>
      <p>The name is {name}</p>
      <button onClick={updateName}>Change Name</button>
    </>
  );
}

export default StateManagement;


功能解析

  1. 初始化状态:const [name, setName] = useState("John") 初始化 name 状态为 "John"。
  2. 更新状态:setName("John Doe") 用于更新 name 的值为 "John Doe"。
  3. 按钮点击:当用户点击按钮时,调用 updateName 函数,触发状态更新。

状态更新的效果

  • 每当用户点击按钮时,name 状态会从 "John" 更新为 "John Doe"。
  • React 会重新渲染组件并更新页面显示。

示例:显示/隐藏信息

接下来,我们来看一个用于显示或隐藏信息的组件 —— ToggleMessage。

ToggleMessage 组件代码

import React, { useState } from 'react';

function ToggleMessage() {
  const [isVisible, setIsVisible] = useState(true);

  const toggleVisibility = () => {
    setIsVisible(!isVisible);
  };

  return (
    <div>
      <h2>Toggle Message</h2>
      <button onClick={toggleVisibility}>
        {isVisible ? "Hide message" : "Show message"}
      </button>
      {isVisible && <p>This is a hidden message</p>}
    </div>
  );
}

export default ToggleMessage;

功能解析

  1. 状态变量:const [isVisible, setIsVisible] = useState(true) 用于控制信息是否显示。
  2. 切换函数:toggleVisibility 用于切换 isVisible 状态。
  3. 条件渲染:当 isVisible 为 true 时,显示段落 <p>This is a hidden message</p>;否则,隐藏它。

总结

在本视频中,你学到了:

  • 状态管理 允许你管理随时间变化的数据。
  • useState hook 使得函数组件能够本地管理状态。
  • 使用 useState 时,调用该函数并传入初始状态,返回的数组包含当前状态值和更新函数。
  • 通过 useState,你可以让组件变得动态和交互式。

🎉 当你需要让组件响应用户操作或其他变化时,使用 useState 是管理状态的最佳选择!


💡 继续学习并掌握更多 React 技巧! 🚀