先说结论:React 的批量更新机制能让你的应用在多次状态变更时只触发一次渲染,性能提升可达 300% 以上。本文将深入解析其底层原理,并给出可落地的最佳实践。
问题背景:为什么你的 React 应用总是"卡顿"
在日常 React 开发中,我们经常会遇到这样的场景:
function Counter() {
const [count, setCount] = useState(0);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const handleClick = () => {
setCount(count + 1); // 第一次状态更新
setLoading(true); // 第二次状态更新
setError(null); // 第三次状态更新
// 这里会触发几次渲染?
};
}很多开发者误以为每次 setState 都会立即触发重新渲染,导致性能担忧。实际上,React 从设计之初就考虑到了这个问题,通过**批量更新(Batching)**机制将多次状态变更合并为单次渲染。