与Redux选择器的使用方式混淆



我在学习Redux时发现了Redux选择器的概念。我很好奇这是什么,发现它是一个封装存储状态切片逻辑的函数,这样我们就可以重用它

function mapStateToProps(state) {
return {
incompleteTodos: state.todos.filter((todo) => {
return !todo.completed
});
}
}

成为

function mapStateToProps(state) {
return {
incompleteTodos: getIncompleteTodos(state)
};
}

但我想问的问题是,当我们使用这样的选择器时,是否真的是这样的:getIncompleteToos(state(除了可重用性之外,我们还默认获得内存化。因此,我们不需要使用重新选择库。这是真的吗?

简短的回答是否。默认情况下,每次更新组件时都会计算mapStateToProps中的属性,但还有一些其他解决方案:

  1. 重新选择您提到的库,它是Redux团队的官方包,所以您可以信任它
  2. 您可以使用Redux Toolkit包,它也是一个官方库,并且开箱即用,它还具有Reselect
  3. 您可以使用ReduxHook-useSelector,默认情况下它的行为类似于记忆属性,所以我想这就是您感兴趣的,就默认记忆而言

最新更新