Javascript 离开组件vuejs 2后仍将触发自定义事件

Javascript 离开组件vuejs 2后仍将触发自定义事件,javascript,vuejs2,Javascript,Vuejs2,我正在使用vue.js进行一个spa项目。在一个组件中,我在一段时间后发送ajax请求。我正在使用vue router进行导航。当我离开路由并进入另一个组件时,ajax请求仍在执行。如何防止/销毁事件的执行?以下是我的代码示例: export default { data() { return { }; }, methods: { onLoad() {

我正在使用vue.js进行一个spa项目。在一个组件中,我在一段时间后发送ajax请求。我正在使用vue router进行导航。当我离开路由并进入另一个组件时,ajax请求仍在执行。如何防止/销毁事件的执行?以下是我的代码示例:

    export default {
        data() {
            return {
            };
        },
        methods: {
            onLoad() {
                setInterval(function(){
                    //sending ajax request
                }, 5000);
            },
        },
        mounted() {
            this.onLoad();
        },
    }

您需要将间隔ID保存在Vue实例中,以便稍后通过调用
clearInterval
将其删除。以下是实现此目的的方法:

export default {
  methods: {
    onLoad() {
      this.intervalId = setInterval(() => {
        //sending ajax request
      }, 5000)
    }
  },
  mounted() {
    this.onLoad()
  },
  beforeDestroy() {
    clearInterval(this.intervalId)
  }
}

编辑:
intervalId
不需要反应。

谢谢你,兄弟。完美的答案。你救了我一天。