【React Hooks】关于useEffect

我阅读了公式文档和文章,但由于不理解,所以写了下来。

useEffect是什么意思?

这是用于在函数组件内执行副作用(Side Effect)的钩子,在React Hooks中提供。

副作用是指与函数组件的输出(渲染)无关的操作,如DOM更新、数据获取、日志记录等。通过使用useEffect,可以将渲染和副作用分开处理。

以下是语法。

useEffect(() => {
  /* 実行させたい副作用関数 */
  console.log('副作用関数が実行されました!')
},[依存する変数の配列]) // 副作用関数の実行タイミングを制御する依存データを記述

行为

当第二个参数中的任何元素被创建或更新时,useEffect钩子会执行第一个参数中的处理代码。

useEffect(() => {
  console.log(`filter ステートが更新された: ${filter}`);
}, [filter]);

此外,在useEffect内引用的外部变量和函数被称为第二个参数数组的”依赖数组”。

一个选项:

当数组为空时,只有在组件挂载时才执行第一个参数的操作。如果省略该数组本身,副作用将始终被执行。

useEffect(() => {
  console.log(`コンポーネントがマウントされた`);
}, []);

一个使用情境

DOM的更新:如果需要操作DOM,则在组件渲染之后需要对DOM进行操作。
数据获取:从API获取数据,并根据该数据更新组件。
事件监听器:为特定事件(例如窗口大小变化)设置监听器,并在该事件发生时更新组件。

通常情况下,当我们想在 React 更新了 DOM 之后执行某些附加代码时,可以使用 useEffect 钩子。

useEffect的用法示例

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

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

  // レンダリング後に実行される
  useEffect(() => {
    document.title = `${count} clicks`;
  });

  return (
    <>
      <p>{count} clicks</p>
      <button onClick={() => setCount(count + 1)}>
        Click me
      </button>
    </>
  );
}
不需要编写类,也可以使用React的功能,例如状态(state)。React的钩子函数包括useState、useContext等各种类型,基础知识可以参考这篇文章:https://qiita.com/seira/items/f063e262b1d57d7e78b4。
bannerAds