一、React.memo介绍
React.Memo 是 React 16.6 新的一个 API, 用来缓存组件的渲染,避免不必要的更新,也是一个高阶组件,与类组件的 PureComponent十分类似,不同点在于,React.Memo 只能用于函数组件。
React.Memo作用:避免组件无效渲染
因为在react中,只要父组件的某一个状态改变了,无论是否关联所有子组件,所有子组件都会重新再次进行渲染,因此,这时候就需要使用React.Memo对当前组件进行缓存。
memo是一种缓存技术,这个函数可以检测从父组件接收的props,并且在父组件改变state的时候对比这个state是否是本组件在使用,如果不是,则拒绝重新渲染。
二、React.Memo使用
React.Memo默认是使用的浅比较,只比较第一层的key,shallowEqual主要是通过Object.js来对比,因此对于对象或数组,则为false,因此每次都会进行渲染,这时候我们可以通过传入第二个参数来自定义比较方法
用法一:默认浅比较的父子组件传参、参数不变子组件不重新渲染的使用方法
父组件:<ChildComponent name={name} />
子组件:
const