范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Vue动态路由的实现(后台传递路由,前端拿到并生成侧边栏)

  动态路由是一个常用的功能,根据后台返回的路由json表,前端动态显示可跳转的路由项,下面来讲解一下具体的实现方式:
  大致业务需求:前端在login登陆页,输入账号密码后,点击登陆,接口返回登陆成功的同时,也会把该用户可操作的路由链表返回给前端(JSON数组格式),前端拿到这个JSON数组,来渲染成侧边栏列表(说的是PC端),我们需要将所有的页面都写好,然后去匹配后台返回的部分路由来进行展示(比如项目一共有100个页面,后台返回了10个路由地址,那么我们只展示返回的对应的10个即可)
  说一下思路:
  我们可以将路由分为3个部分
  1.默认展示的部分(包括login页面、404页面等等)
  2.后台返回的部分(具有权限操作的部分路由)
  3.全部动态路由(比如后台返回了10个路由地址,我们全部动态的路由是100个地址,所做的就是将100个全部动态路由里面和后台返回的对应匹配的10个路由追加到默认路由里面,就可以完成动态路由的流程了)
  正常路由,我们的写法大概是这样的://src/router/index.js import Router from "vue-router" Vue.use(Router) const Routes = [     {         path:"/",         component:Login,         meta: {             title: "登录页"         }     },     {         path:"/Home",         component:Home,         meta: {             title: "Home主页"         }     } ] const Routers = new Router({     routes: Routes }) export default Routers;
  我们要做动态路由,就需要改变一下这个结构(分为动态+静态),这里的静态是指需要匹配展示对应的,所以,我们需要在建一个全部的路由JSON//stc/router/index.js const defaultRoutes = [ //...这默认路由就是上面代码内的登录页/404页面... ] const allRouters = [//这里就是全部动态路由     {         path:"/UserList",         component:UserList,         meta: {             title: "人员管理"         }     },     {         path:"/PwdList",         component:PwdList,         meta: {             title: "密码管理"         }     } ] const Routers = new Router({     routes: defaultRoutes//默认渲染 -> 默认路由 }) export default Routers;
  所有的静态路由和动态路由,都写完了,接下来就是关键部分(将后台返回的路由json拼接到route内),由于我们是在login页面点击登陆后,进行的跳转,所以,把代码写到路由钩子内(Routers.beforeach函数)Routers.beforeEach((to,from,next) => {     if(to.path != "/" && !store.state.isLogin) {         //跳转的不是首页 同时 用户还未登陆         //这个判断,我们就可以基本判定用户是在做登陆时候的跳转         // 拿到登陆时,接口返回的路由数组(vuex内),大致是这样的         let resRouterArr = [             {                 routeName: "人员管理",                 children: [                     {                         routeName: "销售管理",                         ...                     },                     {                         routeName: "内勤管理",                         ...                     }                 ]             }         ]         let routerArr = []         resRouterArr.forEach(item => {             allRouters.forEach(all => {                 if(item.routeName == all.routeName) {                     //拿到本地路由对象                     let obj = JSON.parse(JSON.stringify(all))                     let childrenRouter = []                     if(item.children && item.children.length > 0) {                         item.children.forEach(childItem => {                             all.children.forEach(allItem => {                                 if(childItem.routeName == allItem.routerName) {                                     childrenRouter.push(allItem)                                 }                             })                         })                         obj.children = childrenRouter                     }                     routerArr.push(obj)                 }             })         })         Routers.addroutes(routerArr)//addroutes为添加路由数组的方法         store.commit("domRouteTree",rousterArr)//存储进vuex,之后页面左右路由列表渲染使用         next({...to,replace:true})//进行路由跳转     } else {         next()     } })
  这样,我们跳转到之后的业务页面,就可以看到列表左侧生成的动态路由列表了,点击左侧的几个动态生成的路由,也很nice,么得问题~
  ps:这里遇到了一个坑,踩了一会儿,也记上
  以前都是这样写的import UserList from "@/views/User/UserList"
  但是跳转过去之后,页面就会出现白屏报错的情况,查了半天,原来要补齐路径import UserList from "@/views/User/UserList.vue"
  解决完,还特意试了一下,加上【.vue】就没问题,去掉【.vue】就白屏+报错,真是坑了~,后来听同学说:要加.vue是因为你的user目录下对应的不是index,嗯,这样的解释理解的更透彻了!

阿里腾讯华为三足鼎立云计算,京东云凭什么上牌桌京东集团是京东云最好的试验场。没有哪家企业的技术团队能像京东云这样,需要面对京东集团这样极度复杂的应用场景。不过,京东云的星途大海,却不囿于京东。文中国企业家记者李艳艳实习生万杰瑜三星GalaxyS22系列规格泄露电池略有缩水PChome手机频道资讯报道三星在2021年的旗舰款机型已经推出完毕,缺少GalaxyNote系列的新品确实让人略感遗憾,但两款折叠屏新机同样精彩。三星的下一款旗舰机型,就要等到2小米在印度有多强?连续16个季度稳居第一,Q2出货量超三星80小米是最早一批进入印度市场的国内厂商,凭借着超高的性价比,小米也是迅速得到了印度用户的认可,并且长期占据印度市场份额第一的位置。甚至连全球第一的三星对于小米也束手无策。当然小米的对2021备受欢迎的8大智能家电排行榜诺赫海尔携手进榜随着人们生活水平的提高,新的消费升级,人们对智能家电的需求也随之增大。近几年智能家电市场也空前火热,衣食住行的智能化也逐渐渗透至千家万户,人们在享受其便捷性的同时也收获了它极具体验推荐3款颜值高的手机颜值控必备!看看有你的手机吗朋友们,大家好!欢迎您点开笑呵呵的小丑的文章,您的每一次浏览都是对小编最大的鼓励!事不宜迟,咱们进入本篇的正题。作为手机,在前几年的时间里,人们只注重它的实用性,随着工艺技术的进步三大运营商公布半年报5G套餐用户数近5亿来源人民网人民网北京8月20日电(赵超)8月19日,中国联通公布上半年财报,至此,三大电信运营商的半年报悉数发布。根据三大电信运营商公布的上半年业绩报告,中国5G套餐用户数已达4。苹果Manticore工具运行iOS15beta6越狱说明Manticore工具运行iOS15beta6越狱说明ios越狱8月20日消息!据外媒报道!iOS14。614。5。114。5JAILBREAK(A12)新闻PwnMyManticiOS微信8。0。11发布,带来这些新变化8月19日,iOS微信又又又更新了,推送了iOS微信8。0。11正式版,距离上个版本的更新仅仅相隔10来天,这更新速度没得说呀。在其更新日志中依然是我们的老朋友解决了一些已知问题,骁龙870,摩托罗拉edgespro实力超群!售价仅2399元哈喽大家好,我是你们的老朋友小生,每天都会给大家更新我的原创内容。摩托罗拉举办了一起令人震惊的发布会,带来了摩托罗拉edgespro和edge轻奢华版2种新品。这手机的闪光点还很多电动牙刷后的又一次革新?素诺智能可视冲牙器全面清洁口腔随着科技的发展,我们每天早上刷牙的工具也变得越来越丰富,除了日常实用的牙刷还有电动牙刷到现在流行起来的冲牙器,这些都是可以清洁口腔的工具。其实无论是是哪一种,只要适合这就的就是最好三星屏下摄像手机姗姗来迟,但还稍欠火候,中兴等国产更受认可说起屏下摄像技术大家已经不陌生了,将前置摄像头隐藏在屏幕之下,不但大大提高了手机屏占比,而且还不会影响整块屏幕显示效果,相比水滴屏或是挖孔屏来得好看很多,体验更好,是真正意义的全面
一个学校的的档次,看学校的领导班子自从互联网便利通信以后,拉近了人们与世界之间的距离。也带动了大学之间的排名攀比。目前,国内外著名的大学排名机构主要有国际上公认的大学排名机构QS世界大学排名泰晤士报世界大学排名(T河南高校教育之痛2020年全国高考落下帷幕,据统计河南高考生有40选择复读,河南高校少么,还是河南考生多,考的分数不行,但河南考生今年就有七百分也不能上清北的现实。2020年,全国高考报名人数超过国人养老,中老年心中的痛目前我国已经步入老龄化时代,2019年底,我国60岁及以上人口达到2。54亿,这里面包含农村城市贫困孤寡等各种形式的老年人。对于八十岁以上的老年人正常情况下,只要儿女能够一日三餐的涉及艺人案件,请给审判以公正的法制空间艺人不应该带社会节奏,干扰在审理中案件在当今社会,只要案件的审理涉及到艺人,都会引来各式各样的关注。特别是艺人的忠粉,会各种不经大脑思考的无条件支持自己的艺人。艺人所在的经纪公司或千元机真的别选华为了华为近几年可谓是大火,在安卓手机里绝对排得上是第一。随着折叠屏和鸿蒙系统上市,也可以看出华为在逐渐走向高档路线,直追苹果的步伐。但华为在走高档路线的同时忽视了低端机的品质,越来越多艾创米刷脸新时代,凭一张脸就可以进门,究竟是怎么做到的?随着科技的发展,手机解锁开始有了人脸识别,支付密码验证也开始用脸部识别的方式,刷脸支付,刷脸通行,刷脸乘火车飞机无接触交互,已经成为科技时代的一大核心词,更加安全快捷。而智能锁行业艾创米智能锁选购实用技巧总是忘记带钥匙给大家带来的痛苦加上科技的发展,使得智能锁正在加快步伐走进普通老百姓的生活。市面上的指纹智能锁五花八门,给消费者在选购过程中带来了很多的困扰,网络上也有很多攻略和技巧VS2015安装与卸载,完整版,安装是,最好把VS相关的文件都装在一个独立的文件夹(装其他软件也类似,好处是当你准备删除时,你会体会到这样的好处)。按步骤提示安装软件,最后可以选择两种方式使用软件,一种是登陆自己3资本论卷一第一版序马克思在资本论卷一第一版的序言中,带有强烈的批判主义精神,阐述了资本主义的产生和发展,就是充满压迫剥削的历史。同时,马克思的这篇序言是对资本论全书的概括,也是马克思主义分析事物本质一个包子的强盗逻辑这几天被狗不理包子刷屏了,一个博主买了狗不理包子,发了个视频,点评包子不太好吃,然后就被狗不理总部给报警了,说是诋毁其品牌形象。我国古代都知道道路以目的危害,提倡广开言路,而到了新彻底删除VS2015方法最近卸载vs2015后,不能再装,可以用如下方法如果找注册表去完全删除时非常繁琐,可以使用的方法先下载卸载软件httpsgithub。comMicrosoftVisualStudi