Javascript 如何在使用Vue.js和Vue路由器构建SPA时销毁组件?

Javascript 如何在使用Vue.js和Vue路由器构建SPA时销毁组件?,javascript,vue.js,Javascript,Vue.js,假设我有一个路由器映射,如下所示: router.map({ '/a_example': { component: A }, '/b_example': { component: B }, 组件a上每1秒有一个Ajax请求。我在浏览器中加载/a_示例,然后单击组件a上的链接转到/b_示例。现在,浏览器将按预期显示组件B。但是,Ajax请求不会停止,仍然每1秒发送一次请求 我的猜测是vue路由器仍然将组件A隐藏在引擎盖下,这样它就不会遇到性能问题 不管怎样,我所发现的就是这件事

假设我有一个路由器映射,如下所示:

router.map({
'/a_example': {
    component: A
},

'/b_example': {
    component: B
},
组件a上每1秒有一个Ajax请求。我在浏览器中加载
/a_示例
,然后单击
组件a
上的链接转到
/b_示例
。现在,浏览器将按预期显示组件B。但是,Ajax请求不会停止,仍然每1秒发送一次请求

我的猜测是vue路由器仍然将组件A隐藏在引擎盖下,这样它就不会遇到性能问题

不管怎样,我所发现的就是这件事。但是默认情况下它是非活动的,我确信我没有使用它


是否有一些选项可供我使用?

Vue路由器提供了许多可选选项。您可以停止在
deactivate
hook中发送ajax请求

Vue.component('component-A', {
  route: {
    deactivate: function () {
    //stop sending requests
    }
  }
})

在最新版本的VueRouter(v.2.1.1)中,您可以使用:

在离开之前

const Foo = {
  template: `...`,
  beforeRouteLeave (to, from, next) {
    // stop your requests here
    // ...
    next()
  }
}