SoFunction
Updated on 2025-03-10

Summary of the method to implement deep monitoring in Vue

introduction

In Vue, deep listening is a very common and important feature. It allows us to listen to all properties inside an object and deal with changes in these properties accordingly. In this blog, I will introduce you to how to implement deep listening in Vue, and attach sample code to help you better understand.

1. Use `$watch` to implement deep monitoring

Vue provides the `$watch` API to implement deep listening, and the object can be deeply listened to by setting `deep: true`. Here is a sample code:

new Vue({
  data: {
    obj: {
      a: 123,
      b: 'hello'
    }
  },
  created() {
    this.$watch('obj', (newVal, oldVal) => {
      ('Obj has changed', newVal, oldVal)
    }, { deep: true })
  },
  methods: {
    updateObj() {
       = 456
    }
  }
})

In the above code, we first define a Vue instance containing the `obj` object. Then use `$watch` in the `created` hook to listen for changes in the `obj` object, and set `deep: true` to achieve deep listening. When the `updateObj` method is executed, modify the value of ``, and the console will change the output `obj {a: 456, b: 'hello'} {a: 123, b: 'hello'}`.

2. Use `` to achieve deep monitoring

In addition to using `$watch`, we can also implement deep monitoring through ``. ``Can ensure that responsive updates can be triggered when new properties are added on objects. Here is a sample code:

new Vue({
  data: {
    obj: {
      a: 123,
      b: 'hello'
    }
  },
  created() {
    (, 'c', 'world')
  }
})

In the above code, we added a new property `c` on the obj` object using ``. Since `` is used, Vue will automatically listen for changes in the `c` property to ensure responsive updates.

3. Use the `watch` property to implement deep monitoring

In addition to using `$watch` and ``, we can also declare a listener in the `watch` property of the component to implement deep listening. Here is a sample code:

new Vue({
  data: {
    obj: {
      a: 123,
      b: 'hello'
    }
  },
  watch: {
    obj: {
      handler(newVal, oldVal) {
        ('Obj has changed', newVal, oldVal)
      },
      deep: true
    }
  }
})

In the above code, we declare a listener in the `watch` property to listen for changes in the `obj` object, and set `deep: true` to achieve deep listening.

Summarize

In Vue, deep listening can be implemented through the `$watch`, `` and `watch` attributes, these methods allow us to easily listen for property changes inside the object.

The above is the detailed content of the summary of the method of implementing deep monitoring in Vue. For more information about Vue deep monitoring, please pay attention to my other related articles!