You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React.memo:比较props时使用哪个组件实例作为prevProps?

React.memo 的 props 对比逻辑

React.memo 的缓存逻辑是绑定到组件实例上的,它会将当前传入的 nextProps 和同一组件实例上一次渲染周期中使用的 props做对比。

自定义对比函数里的 prevProps,就是这个组件实例在上一次完成渲染时接收到的 props 值——简单说,就是该组件“上一次用的 props”。

需要注意的是,同一个组件的不同实例(比如列表里循环渲染的多个相同组件),它们的缓存是完全独立的。每个实例只会和自己上一次的 props 做对比,不会和其他实例的 props 产生关联。

举个直观的代码例子:

// 用React.memo包裹组件,自定义对比逻辑
const MemoizedCard = React.memo(CardComponent, (prevProps, nextProps) => {
  // 这里的prevProps是当前CardComponent实例上一次渲染的props
  return prevProps.userId === nextProps.userId;
});

// 渲染两个独立的组件实例
<MemoizedCard userId={101} />
<MemoizedCard userId={102} />

上面两个MemoizedCard实例的prevProps分别对应自己上一次的userId,彼此完全独立。

内容的提问来源于stack exchange,提问作者zhulien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:42:01