vue里watch数组返回的newVal 和 oldVal 相同?

data() {
    return {
      colorlist: [
        {
          color: '#333333',
          ftcolor: '#ffffff',
          name: '默认1'
        },
        {
          color: '#55CD31',
          ftcolor: '#ffffff',
          name: '默认2'
        },
        {
          color: '#31ADCD',
          ftcolor: '#ffffff',
          name: '默认3'
        }
      ]
    }
  },
  watch: {
    colorlist: {
      handler: function(val, oldVal) {
        console.log(val, oldVal)
      },
      deep: true
    }
  }

我改变第三个的颜色为红色。控制台输出结果:
图片描述

第三个的oldVal 的颜色不是应该是 #31ADCD 吗?

阅读 3.4k
2 个回答

大概意思是这样:在打印数组或是对象的时候是通过引用去取的值,当你改变数组时,打印出来的值自然也就变了

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