javascript - Vue中,如何watch数组中所有对象的某个属性的变化?

查看:573
本文介绍了javascript - Vue中,如何watch数组中所有对象的某个属性的变化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

      items: [
        {
          id: 336,
          title: '智利三文鱼扒500g酸甜口味爆炒',
          img: '../assets/images/test/8-1.jpg',
          count: 1,
          price1: 106,
          price2: 80
        },
        {
          id: 337,
          title: '西班牙三文鱼扒500g酸甜口味爆炒',
          img: '../assets/images/test/8-1.jpg',
          count: 2,
          price1: 225,
          price2: 152
        }
      ]

如上代码,我要求count的和,当任意count的值产生变化是,就要更新count的和,请问如何监听所有count的值得变化呢?


感谢大神们的回答,不过我的问题是如何监听所有count值得变化?以便触发下一步操作

解决方案

用计算属性,返回值是这个列表值相加

computed: {
    countTotal: function () {
        let total = 0;
        this.items.forEach(function (item) {
            total += item.count
        })
        return total
    }
}

监听用 watch选项

watch: {
    items: {
        handler: function () {},
        deep: true
    }
}

对象要深复制,默认是浅复制

这篇关于javascript - Vue中,如何watch数组中所有对象的某个属性的变化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆