组件 Re-render 时会重新执行整个函数,包括:

<aside> 💡

React 通过 virtual DOM diffing 机制对比新旧 JSX, 只更新变化的部分, 不会修改整个 DOM

</aside>

Re-render 触发条件

优化 Re-render

React.memo()

用于优化子组件,当 props 没有变化时,防止子组件不必要的 Re-render。

const Child = React.memo(() => {
  console.log("Child re-rendered!");
  return <p>I'm a child</p>;
});

副作用管理

useEffect()

适用于事件监听、API 请求、订阅等副作用,避免副作用在每次 Re-render 时都执行: