Javascript 在创建/装载方法尚未完成时,如何禁用vue.js watcher?

Javascript 在创建/装载方法尚未完成时,如何禁用vue.js watcher?,javascript,vue.js,Javascript,Vue.js,我想禁用watcher,这样它在创建时不会触发特定的watcher或装载时完成并在这些完成后启用它。实现这一目标的正确方法是什么?如果看不到你在做什么,就很难确切地知道你想要实现什么。一般来说,您不应该自己处理观察者,因此值得查看您的代码,看看是否有更好的解决方案。也就是说,可以在运行时应用观察程序,您可以在初始化后在挂载的钩子中执行此操作: new Vue({ el: '#app', created() { // this won't fire the watcher as i

我想禁用watcher,这样它在创建时不会触发特定的watcher装载时完成并在这些完成后启用它。实现这一目标的正确方法是什么?

如果看不到你在做什么,就很难确切地知道你想要实现什么。一般来说,您不应该自己处理
观察者,因此值得查看您的代码,看看是否有更好的解决方案。也就是说,可以在运行时应用
观察程序
,您可以在
初始化后在
挂载的
钩子中执行此操作:

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: ''
  }
})
以下是JSFIDLE: