Vue JS在链接到嵌套路由时保持路由

时间:2016-03-08 03:16:16

标签: vue.js

如果 A 组件是我的应用,并且我的路线映射到组件 B 。然后,组件 B 中有路由器视图,我希望能够在组件 C 和组件 D之间切换

当我链接到组件 C D 时,它会正常工作,但它会再次呈现整个路线,因此 B 会再次呈现,我就是滚动到顶部。

最好的方法是什么?嵌套应用?或者有没有办法链接到一个子路由,保持路由的一部分没有完整改变,而不是完全刷新它。理想情况下,只是网页渲染的一部分和路线的变化。

1 个答案:

答案 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'
        }
    }
}