useEffect 允许你在函数组件中处理副作用操作,如数据获取、订阅、手动操作 DOM 等。副作用操作是在渲染完成后进行的,因此它不会阻塞浏览器的渲染过程。
数据获取:在组件挂载后从服务器加载数据。
订阅:设置事件监听器或订阅 WebSocket。
清理:在组件卸载时清理副作用(如取消网络请求、移除事件监听器)。
手动 DOM 操作:在渲染后手动操作 DOM。
useEffect(setup, dependencies?)
import React, { useEffect, useState } from 'react';
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
// 进行副作用操作,例如数据获取
fetch('<https://api.example.com/data>')
.then(response => response.json())
.then(data => setData(data));
// 清理副作用(可选)
return () => {
// 取消请求或移除事件监听器
};
}, []); // 依赖项数组
return <div>{data ? data.message : 'Loading...'}</div>;