When my Vue component is loaded, it fetches some data from server and place it in the component data:
data: function(){ return { data: null, dataChanged: false, } }, created: function(){ // fetch data from server this.data = server_data }
Now I want to watch for its changes, and set a bool dataChanged
when it’s changed:
watch: { data: function(oldVal, newVal) { this.dataChanged = true } }
The problem is, when data is initially loaded in created
, it also triggers the watcher.
How do I watch for changes AFTER its initialization?
I have tried resetting dataChanged
to false
right after initialization, it doesn’t work:
created: function(){ // fetch data from server this.data = server_data this.dataChanged = false }
Advertisement
Answer
you can try if the value of data
is null
then it’s false;
watch: { data: function(oldVal, newVal) { if (this.data == null) this.dataChanged = false else this.dataChanged = true } }