Results 18 comments of SoyMeng

核心方法 ``` router.beforeEach(to, from, next) => { ... router.addRoutes(appRouters) next({ ...to }) }) ``` 根据后台数据构建生成appRouters即可

@caoruichun 首先如果是静态路由,通过addRoutes方式,那么 ``` import appRouters from './routers' router.beforeEach(to, from, next) => { ... router.addRoutes(appRouters) next({ ...to }) }) ``` 如果能理解,那么动态路由也并不是很复杂,只是通过一个异步请求去生成相同结构的appRouters,一般我们通过vux去实现 ``` router.beforeEach(to, from, next) => { ... store.dispatch('generateRoutes').then(appRouters => {...

@flzliao 首先,执行下面的方法很重要 ``` next({ ...to }) ``` router.options 中应该只保存静态路由列表

@zhangxlgj 目前的资料好像是没找到更好的方式(毕竟一般退出登录是需要reload的),讨论的话建议重开一个issues

@dengdengdengpan 一般在vuex中会保存一份完整的路由列表,至于该引用哪个就要看你的需求了。我个人的做法是通过动态路由生成后的路由列表都会在vuex中保存,那么在其他地方引用的时候是直接使用vuex中的数据,而不是import静态路由配置

@dengdengdengpan 动态路由一般是根据用户数据产生的,也就是说是用户访问路由后才生成的数据。所以页面逻辑如果有使用到路由的地方,那么就在store中使用state.routers。 所以不是很清楚你具体的需求是什么,本身就是动态的数据,在app.js中有使用的地方?

@dengdengdengpan 感觉是你没理解vuex的用法。这个你直接参考iview-admin关于菜单生成的方式就可以了。实际上静态路由跟动态路由只是生成方式的不同,菜单的生成是一样的。

@dengdengdengpan state.routers

@dengdengdengpan 建议这个menuList从你动态生成路由的module中生成,也就是你定义的router.js。 思路没那么僵硬吧,这个项目只是参考作用