This website requires JavaScript.

随笔

by  萌新NiQyr  
memo 和 useMemo的区别&用法
React 中父元素状态改变,会让所有的子组件重新渲染(不论是否使用了该状态)

在阻止重新渲染的基础上,诞生了memo()。memo是react的一种缓存技术

用法:把子组件当成memo(arg)的入参即可

缺陷:
1、memo的保护是对props做一个浅比较
如果使用props={ array.push ( x ) }
只改变了堆中数据,而栈中地址无更改,memo监测不到所以无法更新视图
除非使用新数组(对象)等

2、缓存也需要成本。

若所有组件都进行缓存,会给浏览器带来非常大的负担,需选择经常被重新渲染的组件有选择性的去缓存

React.memo() 是一个高阶组件,可以用它来包装组件
useMemo() 是一个 React Hook,可以用它在组件中包装函数

相关推荐