【发布时间】:2018-07-10 03:04:49
【问题描述】:
从 Vuex 检索数据时,在某些情况下,使用 getter 和直接访问状态之间的选择非常明确。例如:
- 如果我要检索一个简单的标量,例如
count变量的值,那么直接访问状态似乎是有意义的 - 但是,如果我要检索经过过滤的项目列表,那么 getter 是明确的选择。
但是对于检索值只需要少量逻辑的其他情况呢?例如,如果我的商店根目录中有一个foo 对象,并且:
- 我想检索诸如 foo.option 之类的值,但我不确定它是否存在。我通常会使用三元运算符来检查值是否存在,然后返回值或返回 null。
- 我想检索 foo.date,但 date 是一个字符串,所以我想把它转换成一个时刻。
使用mapState 函数可以满足这些需求中的任何一个,但我应该使用mapGetter 来代替吗?有什么区别?
【问题讨论】:
-
在您的 foo 对象情况下,我会继续使用状态。取决于您使用的位置,您可能需要不同的用例。例如,模板中的日期显示显然是vue过滤器。但是 foo.option 可能是一个逻辑值,因此您可以使用一些实用程序库(如 lodash)来简化您的对象。