vue是否可以动态设置路由的path和components?

我这里有后台返回的一个导航菜单数组,里面包含了每个导航对应要渲染的组件名称和导航目标的别名(用在path上)。

图片描述

如何在初始化构建Router的时候,根据返回的菜单数组来渲染一个routes?
不知道这样的需求是否合理。
我试着做了一下,导航菜单数组在new VueRouter之前用AJAX获取,但每次都获取不到。
如果在构建Router之后再去动态的设置path和component是否可行?

阅读 16.4k
4 个回答

new VueRouter之前用AJAX获取 必须在 AJAX 的回调里初始化 routes,然后再调用 new Vue

clipboard.png

不知道是不是你想要的效果、动态可以在路由path上做手脚、router定义的东西本身就应该const直接定义、
path失效或者隐藏、对应的component又不会加载、只是一个路由而已、不跳过去就不渲染了

顺带一提、不知道我们的权限菜单树跟你想要的是不是一样的

clipboard.png

router一旦被定义,vue之后就不可能再次被重新设定。
如果你想渲染不同的页面,建议用模板框架吧,数据是可以灵活改变,但是一个页面多种模板的话,建议用arttemplate这样的东东

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题