问题描述
- 由于样式和数据结构基本都一样,这两个路由共用一个 category/index.vue 组件,当两个路由之间切换时,组件里的 deactivate 钩子函数不会触发,但切换到主页或者其他不共用的组件时,就会触发。
代码如下
JS 代码
router.map({
'/': {
name: 'home',
component: function(reslove) {
return require(['./views/home/index.vue'], reslove)
},
meta:{keepAlive:true}
},
'/cate1/': {
name: 'cate1',
component: function(reslove) {
return require(['./views/category/index.vue'], reslove)
},
meta:{keepAlive:true}
},
'/cate2/': {
name: 'cate1',
component: function(reslove) {
return require(['./views/category/index.vue'], reslove)
},
meta:{keepAlive:true}
},
});
//注册路由切换前
router.beforeEach(function(transition) {
transition.next();
});
//注册路由切换后
router.afterEach(function(transition) {
console.log(transition.from.name)
});
route: {
data(transition){},
deactivate (transition) {
console.log('deactivate...')
transition.next()
}
}