Spread / Reast 操作符(...arr / ...obj)

@[Spread, Reast, …arr]

基本操作

spread:

  1. 数组的 spread 操作
    function foo (x, y, z) {

    }
    let arr = [1, 2, 3]
    foo (…arr)
  2. 对象的 spread 操作,这里写一个对象的复制操作
    let obj = {
    name: ‘张三’,
    age: 20,
    sex: ‘男’
    }
    let temp = (…obj)

这里使用 …obj ,用在 vue 中 [obj1, obj2, obj3, obj4, obj5] 中更新其中的某一项,比较简单。
例子:

let Bus = new Vue()
// 发射
Bus.$emit('changeClassCount', 1)
// 监听 this.activeIndex 是当前操作的序号, this.classList 是[obj1, obj2, obj3, ......]
Bus.$on('changeClassCount', (val) => {
  this.classList[this.activeIndex].count = this.classList[this.activeIndex].count * 1 + val * 1
  let temp = {...this.classList[this.activeIndex]}  // ...obj
  this.$set(this.classList, this.activeIndex, temp)
})

Reast:

用法和 Spread 差不多
function foo (…arr) {

}
foo (1, 2, 3, 4, 5)


版权声明:本文为weixin_44038355原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。