You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue2中如何监听带有数字键的对象下的指定属性值

Vue2监听数字键对象属性的可行方案

  • 方案1:直接使用方括号格式的字符串监听路径
    你之前认为'obj[1]'不支持作为watch监听路径属于误区,Vue2原生支持这种带方括号的路径写法,直接配置即可生效:
watch: {
  'obj[1]'(newVal) {
    // 这里就可以监听到obj[1]属性的变化
  }
}

如果需要监听数字键对应数组内部的元素变更,额外开启deep: true即可:

watch: {
  'obj[1]': {
    handler(newVal) {
      // 处理逻辑
    },
    deep: true
  }
}
  • 方案2:使用函数式watch返回目标监听值
    如果键名是动态变量,或者担心字符串路径的兼容性,可以用函数返回要监听的目标值,效果完全一致:
watch: {
  () => this.obj[1],
  handler(newVal) {
    // 处理逻辑
  },
  deep: true // 按需开启
}
  • 注意事项
    如果数字键属性是后续动态添加到obj对象上的,不要直接赋值this.obj[1] = [],要使用Vue提供的$set方法确保属性是响应式的,否则无法触发监听:
this.$set(this.obj, 1, [])

内容的提问来源于stack exchange,提问作者Kel Varnsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 12:21:03