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

问题描述

我有 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();
   }
}

标签: vue.jsvuejs2vue-component

解决方案


推荐阅读