vue.js 遇到的那些坑

  • watch一个object类型的变量时,如下面例子的a.b
  a={
    b: {
      b1: 1,
      b2: 2
    }
  }

  @Watch('a.b', { deep: true })
  async onValueChange(newVal, oldVal) {
    // a.b.b1 值改变时
    // newVal.b1 === oldVal.b1 是意料之外的true,因为object的js特性,引用变了,oldVal已经更新
  }

解决:

  get a_b() {
    // to confirm the oldValue is indeed old value
    return Object.assign({}, this.a.b)
  }
  async onValueChange(newVal, oldVal) {
    // newVal.b1 === oldVal.b1 可以正常判定
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。