对象属性里,用[xxx](state){}是什么特殊的写法?

新手上路,请多包涵

URL_4f156d543b91db63f82becf8f51cbc2f
URL_8715710788cdcc6de3e05a33092b0dee

第一个图的写法就很常见,就是一个对象里的属性,一个方法。
但下面这个就不知道是什么写法了。我听说是vuex的内容?有大佬能讲解一下么?

阅读 1.9k
2 个回答

唉,真是人生无常,大肠包小肠

['CLEAR_INFO'](state){// blablabla}
// 和
CLEAR_INFO(state){// blablabla}
// 倒是没有任何区别
// 组件里mapMutation
...mapMutations(['CLEAR_INFO'])
// 你应该注意到'CLEAR_INFO'这个讨厌的字面量,mutation名字改了,全局的字符串都得搜一遍

如果有一点想法那非常好,如果没有

const CLEAR_INFO = 'clearInfo'
[CLEAR_INFO](state){// blablabla}
...mapMutations([CLEAR_INFO])
// 'clearInfo'这个可以随便改

js对象的键名, 可以直接用字符串, { NAME: xxx }{ 'NAME' : xxx }
如果要使用变量, 需要用方括号包起来, 例如 name = 'ABC', { [name]: xxx } 相当于 { 'ABC': xxx }, 后面加()是方法定义的语法

总结起来就是定义了一个名为CLEAR_INFO, 值是函数的对象属性.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题