使用 Redux 时,存储应该是唯一的事实来源,并且没有冗余。假设商店的一部分代表有名字和年龄的人。传统面向对象编程中的 person 类可能如下所示:
class Person {
constructor(first, last, birthday) {
this.first = first;
this.last = last;
this.birthday = birthday;
get_fullname() { // ... //}
get_age() { // ... //}
}
但是,Redux 存储中的对象不允许使用方法。那么,这些“方法”应该落实到哪里呢?
有两种方法:
-
在减速器中。
不知道你从哪里得到的“商店里没有冗余”的规则。将计算结果与源数据一起保存在存储中是完全有效的(尽管在连接姓名这样的简单情况下可能不是最好的方法)
-
在选择器中。
选择器是用于从存储中获取特定子分支的函数。他们还可以在返回之前对它们执行计算。有关一些示例,请参阅 redux 文档中的本章 http://redux.js.org/docs/recipes/ComputingDerivedData.html.
我认为,在需要的地方进行一些记忆,这是两者中更好的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)