ES6 扩展运算符(...)、[]用法&以及Vuex辅助函数原理,以mapState为例

ES6 扩展运算符(…)、[]用法&以及Vuex辅助函数原理

1、

通俗来说一般用于将对象展开

示例代码:

let obj = {
    name:'ivan',
    age:21
}

let obj2 = {
    ...obj
}

console.log(obj2)

此时输出的obj2包含obj的属性name,age

用法:
  1. 不定参数,es6不再使用arguments对象

示例代码:

var demo = function (...arg){
   for (let item of arg){
       console.log(item);
   }
}
demo(1,2,3);
// 1
// 2
// 3
  1. 对象的拷贝,如上面的示例代码
  2. 字符串转数组

示例代码

var demo = "hello"
var str = [...demo];
console.log(str);
// ["h", "e", "l", "l", "o"]

2、[]

在声明函数名时,如需动态使用字符串作为函数名可以使用

示例代码

let str = "myFun"

function [str](){
    console.log(123)
}

let str = "myFun"

let obj = {
    [str]: function() {
        console.log(123);
    }
}

obj.myFun()
obj[str]()

//123
//123

3、Vuex辅助函数原理

直接上代码

function mapState(arr) {
  let obj = {};
  arr.forEach(key => {
    obj[key] = function() {
      console.log(this);
      return this.$store.state[key];
    };
  });
  return obj;
}

调用:

computed: {
    ...mapState(['name','age'])
}

正是使用了扩展运算符和[]实现

同理 mapGetters、mapMutations等原理与之相同

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值