Skip to content Skip to sidebar Skip to footer

Vuejs Watcher Order

I have a Vue instance with two watchers: watch: { zone:function(zone) { console.log('Zone watcher'); this.route = {}; }, route:function(route) {

Solution 1:

Andrey's comment shows the way. This question comes down to which tools you use for what job. Inevitably there's a bit of opinion... watch is for edge cases. You don't need it often, and if you can do without it, you probably should. watch belongs with computed and v-bind: they're reactive, use them (only) for representing state on screen, you have no (or little) control over when they run, and you shouldn't care.

A server request belongs in a method, or in a function outside of Vue (in your store perhaps) where it can be called explicitly. So create yourself a changeZone() function that clears routes and tracks, then calls the server, then updates your data (or store) with the server response. Your code will be much clearer if these little functional sequences are specified explicitly, in one place. The trigger for your sequence should likely be from an event (user-action) or lifecyle hook, not a watch.


Post a Comment for "Vuejs Watcher Order"