React Hooks 是 React 16.8 版本引入的新特性,它允许你在不编写类的情况下使用 state 以及其他的 React 特性。

常用状态管理 Hooks

以下是一些常用的状态管理 Hooks:

  • useState: 用于在函数组件中添加 state。
  • useEffect: 用于在组件中执行副作用操作,例如数据获取、订阅或手动更改 DOM。
  • useContext: 用于在组件树中共享一些值,而不必一层层手动通过 props 传递。

使用 useState 管理状态

useState 是最常用的状态管理 Hook,它允许你在函数组件中添加 state。

import React, { useState } from 'react';

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

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </div>
  );
}

在上面的例子中,我们创建了一个名为 Counter 的组件,它有一个名为 count 的 state,初始值为 0。我们还有一个按钮,当点击按钮时,count 的值会增加 1。

使用 useEffect 进行副作用操作

useEffect 允许你在组件中执行副作用操作,例如数据获取、订阅或手动更改 DOM。

import React, { useState, useEffect } from 'react';

function FetchData() {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch('/api/data');
      const json = await response.json();
      setData(json);
    };

    fetchData();
  }, []); // 空数组表示这个 effect 只在组件挂载时运行一次

  return (
    <div>
      {data ? <pre>{JSON.stringify(data, null, 2)}</pre> : <p>Loading...</p>}
    </div>
  );
}

在上面的例子中,我们创建了一个名为 FetchData 的组件,它使用 useEffect 来从服务器获取数据。当组件挂载时,useEffect 会运行,并从服务器获取数据。一旦数据被获取,它就会被存储在组件的 state 中,并显示在页面上。

扩展阅读

更多关于 React Hooks 的信息,您可以访问 React 官方文档

<center><img src="https://cloud-image.ullrai.com/q/react_hooks/" alt="React Hooks"/></center>