1.函数式组件中使用redux hook
const { count } = useSelector((state) => ({
count: state.counter.count
}), shallowEqual)
通过useSelector获取state数据,默认是监听state中保存的所有数据,当这些数据发送变化时,会重新执行传入useSelector的回调函数,组件也会重新渲染,但是当一个本组件中没有使用到的数据发生变化时,useSelector也会监听到并且重新渲染页面,浪费性能
优化方案:useSelector传入第二个参数shallowEqual,这样每次有state发生变化时,都会与当前组件中使用到的数据进行浅层对比,只有发生发生变化时,才会重新渲染组件
2.函数式组件使用meno
3.类组件使用pureComponent