首页 > 解决方案 > 在 Vue.js 中与 ES6 中的函数结合使用的扩展运算符

问题描述

我刚刚浏览了 habitica 代码(一个 vue.js 应用程序),并遇到了下面的传播运算符用法,例如HERE。在计算内部,您有以下内容:

computed: {
  ...mapState({
    user: 'user.data',
    castingSpell: 'spellOptions.castingSpell',
    isRunningYesterdailies: 'isRunningYesterdailies',
  }),
}

现在我似乎从来没有将扩展运算符与函数结合使用,不确定这里发生了什么,发生mapState在另一个文件中的函数,看起来像这样:

export function mapState (states) {
  const res = {};

  normalizeMap(states).forEach(({ key, val }) => {
    res[key] = function mappedState () {
      return typeof val === 'function' ?
        val.call(this, this.$store.state, this.$store.getters) :
        get(this.$store.state, val);
    };
  });

  return res;
} 

Array当与 an或 an一起使用时,我理解扩展运算符Object,但是函数在这里到底发生了什么?

标签: javascriptvue.jsecmascript-6

解决方案


您的函数正在返回一个Object正在传播的内容,

你可以通过一个简单的例子来理解

  • func是一个基于传递给它的值创建对象的函数
  • me对象内部,我有一个名为的属性info,我想将其设置为对象,因此我只需调用funcname and age传播

let func = (name,age)=> ({name,age})

let me = {
  info: {...func('code maniac', 24)}
}

console.log(me)


推荐阅读