如何解决Redux工具包对useSelector和createSelector的困惑
我是Redux和Redux工具包的新手。我了解到createSelector
可以接受多个输入选择器,这些输入选择器可以作为单独的参数或数组提供。所有输入选择器的结果都作为单独的参数提供给输出选择器。
const selectA = state => state.a;
const selectB = state => state.b;
const selectC = state => state.c;
const selectABC = createSelector(
[selectA,selectB,selectC],(a,b,c) => {
// do something with a,and c,and return a result
return a + b + c;
}
);
我的问题是,如果我只关心一个简单的状态,我可以像这样使用useSelector
const selectA = state => state.a;
const a = useSelector(selectA)
这两种用法有什么区别?
解决方法
“选择器”是任何接受Redux状态树作为参数并返回一些提取或派生数据的函数。其中包括您显示的简单功能。
在许多情况下,您想记住结果的计算方式,例如映射到一组项目上,以便除非输入已更改,否则不会重新计算结果。重新选择的createSelector
创建记忆选择器功能,仅在输入发生更改时才重新计算输出。
有关更多详细信息,请参阅我的帖子Using Reselect Selectors for Encapsulation and Performance和the "Performance and Normalizing Data" page in the new "Redux Essentials" core docs tutorial。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。