之前开发的vue项目路由都是写在前台的,现在公司需要把路由放在后台生成,前台用接口拿到数据,渲染成路由数据,生成左侧菜单,我之前也是参照大师兄的一篇博文,写的,然后用的过程中就有一些问题出现,比如登录成功后跳到首页,没有菜单,需要刷新一下,才能出现,或者是,第一次登录完后,再换个角色登录,拿到的还是上次登录的菜单,也需要刷新才有菜单,如果大家想要参照大师兄的博文,可以点这个链接/a/1190000015419713
大体步骤:拦截路由->后台取到路由->保存路由到localStorage(用户登录进来只会从后台取一次,其余都从本地取,所以用户,只有退出在登录路由才会更新)
1.我是把一些登录、404报错路由写在前端页面,其他路由都是请求接口从后台获取的。
如图:
2.建一个新的文件名叫promission.js 和main.js同级
3vue项目要安装一个插件 npm install vue-loader
4.在路由文件要建两个文件分别是
_import_development.js文件里的内容如下图
_import_production.js文件夹的内容如下图
然后在建一个js 里面写一些过滤路由的方法还有后台传过来的是字符串格式,但是前端路由要求的是组件对象
5.我是在登录的时候,点击登录成功后获取后台路由,因为后台传的JavaScript 对象,文件太大,就转成了json保存,如下图操作
这样差不多就行了,就可以拿到数据渲染侧边菜单了。