性能优化
useSelector
每当一个 action 被 dispatch 后,所有的 useSelector()
都会被执行一次,那么所有使用了这个 hook 的组件都会重新渲染
然而事实上,一个 action 往往并不会涉及到所有 state 的修改,但因为 action 的分发,却导致不相关联的组件重新渲染,这样子的行为造成了许多不必要的开销
为了解决这一问题,我们可以检查传入的参数是否与上一次的相同,如果相同则返回和上一次相同的一个“引用”,这样就不会触发组件的刷新
Redux Toolkit 中包含一个 createSelector
方法,它可以用来创建 "momorized selector functions"
createSelector
Last updated