Sometimes I need to call some function in response to a change in a data property. But, I also need that function to fire for the initial value of the data property.
Th
Watchers in Vue have an option to provide an immediate
value:
Passing in
immediate: true
in the option will trigger the callback immediately with the current value of the expression
In this case, you could set a watcher in the mounted
hook:
new Vue({
el: '#app',
data() {
return {
selectedIndex: 0,
}
},
mounted() {
this.$watch('selectedIndex', (i) => {
this.$refs.input[i].focus();
}, { immediate: true });
}
})
You could also specify the immediate
option for a watcher in the watch
object like so:
watch: {
foo: {
immediate: true,
handler(value) {
this.bar = value;
}
}
}