dsf*_*fad 5 javascript ecmascript-6 vue.js vuex
我想知道为什么 Vuex 中使用突变值 \xe2\x80\x8b\xe2\x80\x8bar "[]"。
类似的代码是什么""意思?
export const SOME_MUTATION = \'SOME_MUTATION\'
它只是函数的常量名称吗?如果是这样,我想知道为什么常量写在"[]".
另外,当在计算或方法属性中使用时,我想知道为什么您要将以下代码传递为而["SOME_ACTION"]不是"SOME_ACTION".
...mapActions(["SOME_ACTION"]),
考试代码
\n\nexport const SOME_MUTATION = \'SOME_MUTATION\'\n\nimport Vuex from \'vuex\'\nimport { SOME_MUTATION } from \'./mutation-types\'\n\nconst store = new Vuex.Store({\n state: { ... },\n mutations: {\n [SOME_MUTATION] (state) {\n }\n }\n})\nRun Code Online (Sandbox Code Playgroud)\n
它称为计算属性名称。这不是 Vuex 的事情。这是 ECMAScript 2015 的事情。因此任何支持 ES2015 的引擎都将支持该语法。
在 ES2015 之前,无法计算对象属性名称。这意味着如果您想要一个动态属性名称,您可能会编写如下内容:
const obj = {};
const result = Math.random() < 0.5;
if (result)
obj.data = result;
else
obj.error = result;
console.log(obj);Run Code Online (Sandbox Code Playgroud)
使用 ES2015 计算属性,您现在可以执行以下操作:
const result = Math.random() < 0.5;
const SOME_PROPERTY = result ? 'data' : 'error';
const obj = {
[SOME_PROPERTY]: result
}
console.log(obj);Run Code Online (Sandbox Code Playgroud)
当然,这只是一个非常简化的示例,并没有真正展示它带来的好处,但在我看来,这是一个非常好的语法糖。
您可以在线找到有关其用例的更多信息。