如果 A 组件是我的应用,并且我的路线映射到组件 B 。然后,组件 B 中有路由器视图,我希望能够在组件 C 和组件 D之间切换
当我链接到组件 C 或 D 时,它会正常工作,但它会再次呈现整个路线,因此 B 会再次呈现,我就是滚动到顶部。
最好的方法是什么?嵌套应用?或者有没有办法链接到一个子路由,保持路由的一部分没有完整改变,而不是完全刷新它。理想情况下,只是网页渲染的一部分和路线的变化。
答案 0 :(得分:1)
除非您将canReuse
设置为false,否则当您在C和D之间移动时,组件B不应重新绘制:http://vuejs.github.io/vue-router/en/pipeline/can-reuse.html
如果要滚动到顶部,可能是因为当C或D的内容消失时,网站高度会减少到标题,因此会自动向上滚动。您可以尝试制作组件B height:100%
,这样它就不会缩小
编辑:嵌套路由实际上解决了这个问题。这样你就不会真正重新路由到B,你只是在B的子路径中导航:
'/:param_one': {
component: require('./RouteOne.vue'),
name:'RouteOne',
subRoutes:{
'/:param_two':{
component:require('./views/Dashboard/OtherRoute.vue'),
name:'OtherRoute'
}
}
}