问题描述
- 由于样式和数据结构基本都一样,这两个路由共用一个 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() } }