Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One way to re-activate a different reactive object in Vue is to use the watch property. First, create a new data property that will hold the new reactive object. Then, use the watch property to monitor this new data property for changes. When the new data property changes, update the original reactive object by assigning the new reactive object to the original property.

Example:

<template>
  <div>
    <p>Current User: {{ user.name }}</p>
    <button @click="changeUser">Change User</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      user: { name: "John Doe", age: 30 },
      newUser: { name: "Jane Smith", age: 25 },
    };
  },
  watch: {
    newUser(newVal) {
      this.user = newVal;
    },
  },
  methods: {
    changeUser() {
      this.newUser = { name: "Mary Johnson", age: 40 };
    },
  },
};
</script>

In this example, a user object is initially set to { name: "John Doe", age: 30 }. When the changeUser method is called, the newUser data property is updated to { name: "Mary Johnson", age: 40 }. The watch property monitors the newUser data property for changes, and when a change is detected, assigns the new object to the user property, effectively re-activating a different reactive object. The template reflects this change by showing the new user's name.