1. 组件内联属性
使用时
直接在组件上传递对象的方式会在无意中破坏 React.memo
的效果,对开发者来说,每次渲染是 style
的值并没有发生变化,但是对于React来说,每次渲染都相当于创建了一个新的 style
对象,导致 memo
失效。
解决办法可以将 style
手动缓存:
2. Children
如果你的组件使用了 memo
,并且支持传入 children
,那么对 React 来说 memo
是无效的
JSX
只是React.createElement
的语法糖,它会在每次渲染时创建一个新对象,所以 p 标签虽然看起来每次都是相同的,但是它不是相同的引用。