如何在创建/挂载方法尚未完成时禁用vue.js观察器?

时间:2017-12-31 11:34:51

标签: javascript vue.js

我想禁用观察者,因此在创建挂载完成时它不会触发某些观察者,并在完成后启用它。实现这个目标的正确方法是什么?

1 个答案:

答案 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/