vue2.0学习之使用常量替代 Mutation 事件类型释义

2019-12-04  本文已影响0人  丁先生_b64b

https://blog.csdn.net/qq_34629352/article/details/78014779

ES6允许字面量定义对象时,用表达式作为对象的属性名和方法名,即把表达式放在方括号内。

在组件方法内提交mutation时,也要先导入常量:

es6花样不少,不熟悉的话怎么看总感觉有问题。

于是。import Vuexfrom'vuex'import{ SOME_MUTATION}from'./mutation-types'const store =newVuex.Store({ state:{...}, mutations:{//

我们可以使用 ES2015 风格的计算属性命名功能来使用一个常量作为函数名[SOME_MUTATION](state){//

mutate state}}})

属性名表达式

JavaScript语言定义对象的属性,有两种方法。

// 方法一

obj.foo =true;

// 方法二

obj['a'+'bc'] =123;

上面代码的方法一是直接用标识符作为属性名,方法二是用表达式作为属性名,这时要将表达式放在方括号之内。

但是,如果使用字面量方式定义对象(使用大括号),在 ES5 中只能使用方法一(标识符)定义属性。

varobj = {

foo:true,

abc:123

};

ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内。

letpropKey ='foo';

letobj = {

[propKey]:true,

['a'+'bc']:123

};

下面是另一个例子。

varlastWord ='last word';

vara = {

'first word':'hello',

[lastWord]:'world'

};

a['first word']// "hello"

a[lastWord]// "world"

a['last word']// "world"

表达式还可以用于定义方法名。

letobj = {

['h'+'ello']() {

return'hi';

  }

};

obj.hello()// hi

http://caibaojian.com/es6/object.html 具体看这里

上一篇 下一篇

猜你喜欢

热点阅读