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()
}
}