Sometimes, we want to watch a deeply nested object with Vue.js.
In this article, we’ll look at how to watch a deeply nested object with Vue.js.
Watch a Deeply Nested Object with Vue.js
To watch a deeply nested object with Vue.js, we can add a watcher for the nested property.
To do this, we write:
<template>
<div id="app">
<input type="checkbox" v-model="block.checkbox.active" />
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
block: {
checkbox: {
active: false,
},
someOtherProp: {
changeme: 0,
},
},
};
},
watch: {
"block.checkbox.active": {
immediate: true,
handler(val) {
console.log(val);
},
},
},
};
</script>
We have the block
reactive property.
And we want to watch for changes to the block.checkbox.active
property.
To do that, we add the 'block.checkbox.active'
watcher object.
We set immediate
to true
to watch the initial value.
And we have the handler
method that has the val
parameter that has the current value of block.checkbox.active
.
We set v-model
to block.checkbox.active
to bind the checkbox value to the block.checkbox.active
property.
Conclusion
To watch a deeply nested object with Vue.js, we can add a watcher for the nested property.