React 自动批处理:有多少次重新渲染?

发布: (2025年12月14日 GMT+8 23:51)
2 min read
原文: Dev.to

Source: Dev.to

示例

import { useState } from 'react';

const App = () => {
  const [name, setName] = useState('');
  const [age, setAge] = useState(null);
  const [hobby, setHobby] = useState('');

  const displayPerson = () => {
    setName('Luiji');
    setAge(29);
    setHobby('swimming');
  };

  console.log('Component rendered');

  return (
    <>
      
### {name}

      
### {age}

      
#### Enjoys: {hobby}

      
        {name === 'Yoshi' ? 'Display Person' : 'Person Displayed'}
      
    
  );
};

export default App;

当你点击按钮时,组件只会 一次 重新渲染,而不是三次。这是因为 React 会自动把同一次事件循环中发生的状态更新进行批处理。

注意: 第一次 console.log 在初始渲染时执行;第二次在按钮点击触发重新渲染后执行。

什么是批处理?

批处理会把多个状态更新合并为一次渲染过程,从而减少不必要的工作并提升性能。在 React 18 中,自动批处理默认已启用,并适用于:

  • 原生事件处理器(例如点击)
  • 异步操作(例如 Promise)
  • 超时和间隔(setTimeout、setInterval)

因为三个 setState 调用(setNamesetAgesetHobby)都发生在同一次点击事件中,React 会将它们批处理,只执行一次渲染。

Back to Blog

相关文章

阅读更多 »

澳大利亚首选的Web技术栈

为什么在澳大利亚选择技术栈很重要 澳大利亚企业优先考虑质量、安全性和性能。网站被期望能够无缝运行...

内部实现:React

介绍 我自从开始使用 React 的那一刻起就想做这件事:了解它的运行机制。这不是对源代码的细粒度审查。在…