shfshanyue / Daily-Question

互联网大厂内推及大厂面经整理,并且每天一道面试题推送。每天五分钟,半年大厂中
https://q.shanyue.tech
4.92k stars 510 forks source link

【Q612】React.memo 中是如何实现性能优化的 #630

Open shfshanyue opened 3 years ago

shfshanyue commented 3 years ago

当 React 中一个组件进行更新时,它的所有子组件都会进行重新渲染,即便子组件的 props 并未发生任何改变。

React.memo 对子组件默认使用浅比较对比前后两次 props 的变更,若未发生变更则不会重新渲染,因此提高了性能。

可参考以下两个示例,加深理解:

  1. React.memo 和性能优化。当某个组件状态更新时,它的所有子组件树将会重新渲染。
  2. React.memo 和 React.useMemo 是如何优化性能的