采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
比如我有一个子路由有一个不同的头部导航,我需要取消默认的layout,是通过在子路由里的created阶段通过bus发送一个事件, layout页面接收这个事件,来改变显示? 这样能行吗? 另外路由的切换会触发生命周期的钩子吗?希望老师给我一个答案
你这个做法逻辑太复杂了,如果有几种layout,就写几个layout模板,new的时候调一个空的App组件,layout根据页面调不同的,layout可以做一个动态组件,componnt :is 这种,Layout是一个变量动态切换。
路由的钩子,别用组件的钩子,用这个:
https://router.vuejs.org/zh-cn/advanced/navigation-guards.html
const Foo = { template: `...`, beforeRouteEnter (to, from, next) { // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 `this` // 因为当守卫执行前,组件实例还没被创建 }, beforeRouteUpdate (to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。 // 可以访问组件实例 `this` }, beforeRouteLeave (to, from, next) { // 导航离开该组件的对应路由时调用 // 可以访问组件实例 `this` } }
登录后可查看更多问答,登录/注册
快速入门Vue2.0,组件化开发一个数字产品电商平台
2.4k 1
1.9k 1
1.9k 5
1.8k 14
3.0k 12
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号