⚡ 编程实验室🏗️ 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 性能优化 — memo/useMemo/useCallback

避免不必要的重渲染,提升 React 应用性能 · 难度:高级 · +20XP

React 性能优化

父组件更新时,默认所有子组件都会重渲染。用memouseMemouseCallback 跳过不必要的渲染。

React.memo — 组件记忆

const ExpensiveList = React.memo(function({ items }) {
  return <ul>{items.map(i => <li key={i}>{i}</li>)}</ul>;
});
// 仅当 items 引用变化时才重渲染

useMemo — 值缓存

const sorted = useMemo(() => {
  return items.sort((a,b) => a.score - b.score);
}, [items]);  // items 不变就不重新排序

useCallback — 函数缓存

const handleAdd = useCallback((id) => {
  setItems(prev => [...prev, id]);
}, []);  // 函数引用不变,避免子组件重渲染

什么时候用?

场景
纯展示组件React.memo
昂贵计算useMemo
传给子组件的回调useCallback

不要过早优化!先写清晰代码,遇到性能瓶颈再加。

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

🏆 学习排行

加载中...

📊 统计

📖 85 篇
0 完成
🔥 0