⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

React useEffect — 副作用处理

数据请求、定时器、DOM 操作,理解依赖数组 · 难度:进阶 · +20XP

useEffect — 处理"副作用"

useEffect 在组件渲染后执行副作用:发 API 请求、操作 DOM、设置定时器、订阅数据。

回顾:之前学的 JS 中你可能在全局写代码,React 中副作用放在 useEffect 里。

三种执行时机

// 1. 每次渲染后都执行(少用)
useEffect(() => { console.log("render了"); });

// 2. 只在首次渲染后执行一次(最常用) useEffect(() => { fetchUsers(); }, []);

// 3. 依赖变化时执行 useEffect(() => { fetchUser(id); }, [id]);

清理副作用

useEffect(() => {
  const timer = setInterval(() => tick(), 1000);
  return () => clearInterval(timer);  // 清理函数
}, []);

数据请求模式

function UserList() {
  const [users, setUsers] = useState([]);
  const [loading, setLoading] = useState(true);

useEffect(() => { fetch("/api/users") .then(r => r.json()) .then(data => setUsers(data)) .finally(() => setLoading(false)); }, []);

if (loading) return <div>加载中...</div>; return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>; }

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 85 篇
0 完成
🔥 0