这是一种反模式,还是有更简单的方法来检测 Vue 是否被破坏?

d-_*_*_-b 5 vue.js vue-component vuejs2

我有 Vue 实例,它不断轮询某些状态,如果实例被销毁,我想取消轮询。

目前,我执行以下逻辑,但很好奇是否有内置属性或方法来简化此操作:

export default {
   data: () => ({
       destroyed: false // seems like an anti-pattern
   }),
   beforeDestroy(){
       this.destroyed = true; // seems like an anti-pattern
   },
   methods: {
      check(){
          if (this.destroyed) return; // would prefer this.$isDestroyed
          if (await forSomething()) {
              return this.check();
          }
      }
   },
   mounted(){
      this.check();
   }
}
Run Code Online (Sandbox Code Playgroud)