Vue中用watch一次监听两个值的变化

        在Vue中,watch 本身不能监听多个变量。但我们可以通过返回具有计算属性的对象然后监听该对象,从而实现一次性“监听多个变量”。

  1. 在data中定义需要的属性
  2. 在computed中返回一个包含将被监听的的各个对象的计算属性
  3. 在watch中监听该计算属性

举个例子:

export default {
    data() {
        return {
            msg1:  "message1",
            msg2:  "message2"
        }
    },
    computed: {
        msgObj() {
            const { msg1, msg2 } = this
            return {
                msg1,
                msg2
            }
        }
    },
    watch: {
        msgObj: {
            handler(newVal, oldVal) {
                //newVal和oldVal的值就是新旧msgObj的值,即msg1和msg2的值
		        //接下来在这里写将要进行的操作

                if (newVal.msg1 != oldVal.msg1) {
                    console.log( "msg1 is change!!!" )
                }
                if (newVal.msg2 != oldVal.msg2) {
                    console.log( "msg2 is change!!!" )
                }
            },
            deep: true
        }
    }
}

这样,我们就实现了再watch中一次性监听两个值的变化。

想要一次性监听更多个值也可以这么操作。

你可能感兴趣的:(随手记录,Vue,前端小知识,vue.js,前端,javascript,笔记,经验分享,watch,面试)