如何仅在页面加载后启动观察者。

hid*_*dar 2 vue.js vuejs2

我有一个观察者调用类似的方法

watch: {
  'list.items' (n, o) {
     this.doSomething()
   }
}
Run Code Online (Sandbox Code Playgroud)

问题是,每当页面加载时,我都会将新值推入list.items

methods: {
  fetchLists(){
    axios.get('/').then(
      res =>  {
       this.items.push(res.data) 
    };
  }
}
Run Code Online (Sandbox Code Playgroud)

我在创建中调用 fetchLists 为:

created () {
  this.fetchLists()
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是this.doSomething()当 list.items 更改后页面加载时观察者调用,但我不想观察者只在初始页面加载后调用 doSomething

Roy*_*y J 6

您可以在 中定义hasLoaded要测试的布尔数据项watch,并在提取完成时设置它,或者您可以this.$watch在提取完成时使用,而不是watch在您的组件中设置条目。

它看起来像

this.$watch('list.items', (n, o) => {
  this.doSomething();
});
Run Code Online (Sandbox Code Playgroud)