ArticleZip > Vuejs Get Old Value When On Change Event

Vuejs Get Old Value When On Change Event

When working with Vue.js, it's common to need the old value of an element when an `@change` event occurs. This can be useful for tracking changes or comparing values before and after alterations. Luckily, Vue.js provides a straightforward way to achieve this.

To get the old value when the `@change` event is triggered in Vue.js, you can utilize a combination of Vue's reactivity system and a variable to store the previous value. Here's how you can do it step by step:

1. Setup Data Variables: Begin by setting up a variable in your Vue component's data section to store the old value. For example:

Javascript

data() {
  return {
    oldValue: null,
    newValue: null
  };
},

2. Track Changes: Next, you need to update the `oldValue` variable whenever the `@change` event is triggered. You can achieve this by using a watch property to monitor changes in the `newValue` variable. Here's how you can set up the watch property:

Javascript

watch: {
  newValue(newVal, oldVal) {
    this.oldValue = oldVal;
  },
},

In this setup, whenever the `newValue` changes, the `oldValue` will be updated to the old value before the change occurred.

3. HTML Implementation: In your HTML template, you can now utilize these variables to get the old value on the `@change` event. Here's an example using a simple input field:

Html

In this input field, we are using `v-model` to bind the input value to the `newValue` variable. The `@change` event is linked to the `handleChange` method that you will define in the methods section.

4. Define the Change Handler: Lastly, define the `handleChange` method in the `methods` section of your Vue component. This method will be triggered when the input value changes, allowing you to access the old and new values. Here's an example implementation:

Javascript

methods: {
  handleChange() {
    console.log('Old Value:', this.oldValue);
    console.log('New Value:', this.newValue);
  },
},

In this method, you can now access both the old and new values whenever a change occurs.

By following these steps, you can easily get the old value when the `@change` event is triggered in Vue.js. This approach leverages Vue's reactivity system and provides a simple yet effective way to track changes in your application.