vue监听data中的某一数组的某一项

clipboard.png

如图我要监听items.amount,除了for循环的写法,还有什么更简单的写法吗?

阅读 4.6k
2 个回答
computed: {
  totalAmount () {
    // 计算出 items 数组中的 amount 总额
    return this.items.reduce((a, b) =>
      ({ amount: a.amount + b.amount })).amount
  }
},
watch: {
  totalAmount (newVal) {
    // 当计算属性变更时触发更新
    console.log('amount change to ', newVal)
  }
}

个人觉得,你的总额的money应该改成一个计算属性

computed: {
         money() {
              let sum  = 0;
              this.items.forEach(item => {
                     sum += item.amount;
              });
              return sum;
         }
}

然后将money属性从data中删除,同时删除你的watch

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