我想禁用观察者,因此在创建或挂载完成时它不会触发某些观察者,并在完成后启用它。实现这个目标的正确方法是什么?
答案 0 :(得分:3)
如果不知道自己在做什么,很难确切地知道自己要实现的目标。通常,您不应该自己处理watchers
,因此值得查看您的代码,看看是否有更好的解决方案。话虽如此,可以在运行时应用watcher
,您可以在mounted
挂钩之后执行此操作,之后有initialised
其他所有内容:
new Vue({
el: '#app',
created() {
// this won't fire the watcher as it hasn't been applied yet
this.foo = 'foo'
},
mounted() {
// Apply watcher after all other initialization is done
this.applyFooWatcher()
},
methods: {
applyFooWatcher() {
this.$watch('foo', function(newVal, oldVal) {
console.log('Foo changed from ' + oldVal + ' to ' + newVal);
});
}
},
data: {
foo: ''
}
})
这里是JSFiddle:https://jsfiddle.net/fo0vmxf6/