77百科网
当前位置: 首页 生活百科

vue静态路由(Vue动态路由实现逻辑)

时间:2023-08-02 作者: 小编 阅读量: 1 栏目名: 生活百科

='1'//判断store中是否有路由,若有,进行下一步if(route!

vue静态路由?1、登录后跳转的授权页redierect.vue,获取动态路由的数组,存储于store.ts,我来为大家讲解一下关于vue静态路由?跟着小编一起来看一看吧!

vue静态路由

1、登录后跳转的授权页redierect.vue,获取动态路由的数组,存储于store.ts

2、在main.ts 中引用路由守卫文件

import './router/permission';

3、在permission.ts中用到了

Router.beforeEach

导航前置守卫,在调用路由之前会先调用该方法,在该方法中通过store.ts的路由数组动态渲染路由后访问。

4、在asyncRouter.js通过定义getAsyncRoutes进行路由数组的格式化,同时此处也可以用来通过接口获取路由信息,但是我就不查了,太浪费资源。

permission.ts内容如下

//进度条引入设置如上面第一种描述一样import router from '@/router/index'import store from '@/store/index'import api from '@/api/index'// import { getToken } from '@/utils/auth' // get token from cookieimport { getAsyncRoutes } from '@/utils/asyncRouter' const whiteList = ['/login','','/redirect'];router.beforeEach( async (to, from, next) => {// NProgress.start()// document.title = to.meta.title;// 获取用户token,用来判断当前用户是否登录const hasToken = true;if (hasToken) {//白名单直接进入if (whiteList.indexOf(to.path) >0) {next()//next({ path: '/' })// NProgress.done()} else {//异步获取store中的路由const route= store.getroutestatus();const hasRouters =route!='null' && route!=null && route!='1'//判断store中是否有路由,若有,进行下一步if (route!=null && route=='1' ) {console.log(router.options);next()} else {//store中没有路由,则需要获取获取异步路由,并进行格式化处理//author:lxfamn date:20210117 descrip://这里没没有异步获取路由,而是从本地存储中直接获取,因为路由数组已在登录时获取完成try {console.log('路由守卫');const accessRoutes = getAsyncRoutes(await store.get_routes());// 动态添加格式化过的路由if (accessRoutes.length) {accessRoutes.forEach(item => {router.addRoute('Home',item)})}store.setroutestatus(1)console.log(to.path)// console.log(router.options);// console.log(router.getRoutes());// console.log(router.hasRoute('abc'))// console.log(router.hasRoute('About'))// router.addRoute(accessRoutes);next({ ...to, replace: true })} catch (error) {// Message.error('出错了')next(`/login?redirect=${to.path}`)}}}} else {if (whiteList.indexOf(to.path) !== -1) {next()} else {next(`/login?redirect=${to.path}`)}}}) router.afterEach(() => {})

    推荐阅读
  • 任贤齐最经典部分歌曲(最新时光音乐会)

    “大众天王”任贤齐,最新一期《时光音乐会》,他成为了庄主,喜迎各位神仙歌友来唱他的歌。谈起任贤齐,出道31年来,好歌可谓汗牛充栋,数不胜数。在《时光音乐会》,翻唱这些老歌,对这些拥有着十八般演唱技能的歌手们来说,自然不在话下。在本期,我认为最打动我的翻唱,只有三位,他们就是许茹芸、谭咏麟和任贤齐自己。任贤齐《心太软》经典歌声再次响起任贤齐把这首曾红遍大江南北的《心太软》,在《时光音乐会》再次唱起。

  • 现代启示录影评(如何评价现代启示录)

    现代启示录影评《现代启示录》是关于找寻的,也是关于成长的。《现代启示录》也可以说是一部公路片,它运用了公路片的模式,只不过把公路置换成了河流,把汽车置换成了巡逻艇。该片表面上在讲越战,但在所有著名的战争片中,它可能是“升华”程度最高的一部。影片虽然不乏对战争的正面描写,但它的精髓是刻画人性中的黑暗,难怪它不是以越战记录为蓝本,而是改编自英国小说家康拉德的经典名著《黑暗之心》。

  • 男孩子气质网名(男孩子气质网名英文)

    8、执念9、梦伴10、浮生未歇11、道尽痴情12、薄凉如荷13、薄年14、今夕何夕15、老人与海16、人心太涼別太善良17、预见18、坐拥江山19、新城已无旧少年20、待我强大自给天下21、钟情22、最怕挣扎

  • 万绿湖景色(看装满水的万绿湖有多美)

    接下来我们就一起去了解一下吧!万绿湖景色万绿湖位于广东省河源市,是华南地区第一大湖,因处处皆绿而得名。水好,是万绿湖的魅力所在。万绿湖370平方公里的水域面积,库容量达到139亿立方米,其常年保持地表水国家I类标准,是广东、香港的重要饮用水源,也是广东省生态环境保护最好的区域之一。

  • 蓝莓糯米糍做法窍门(蓝莓糯米糍做法分享)

    以下内容希望对你有帮助!蓝莓糯米糍做法窍门用料:糯米粉400g、玉米淀粉100g、蓝莓酱适量、黑白芝麻适量、白沙塘适量、色拉油少量、开水适量。将芝麻用锅炒熟备用,将糯米粉和玉米淀粉一起倒在盆里。将白糖用开水化开,再倒进米粉里。拿个盘里面刷些油,蒸时防粘。和好的粉团分成大小适中的小剂子。用手将剂捏成碗状,盛入蓝莓酱,收口。将做好的米糍下锅大火蒸20分钟。将蒸好的糯米糍趁热粘上芝麻即可。

  • 如何教育孩子感恩(怎么教育孩子感恩)

    下面更多详细答案一起来看看吧!让孩子在耳闻目染中把感恩当做一种习惯。我们清除墙上的牛皮癣,捡起路边的垃圾,让我们的城市更加美丽。孩子如果能常怀感恩之心,不仅能培养他们与人为善、与人为乐、乐于助人的品德,促进他们健康人格的形成,而且对其今后和谐人际关系的建立有重要作用。

  • 香港户籍如何申请健康码(香港户籍申请健康码方法)

    港澳台、外籍用户通过支付宝登录申领健康码,下面我们就来说一说关于香港户籍如何申请健康码?首先需要进行支付宝注册并实名认证。授权“健康码”获取姓名、手机号、证件号码、性别、地区和用户状态等信息,点击确认授权后完成注册步骤登录“健康码”首页。首次登录的用户,要点击申领健康码,填写用户信息和健康相关信息,并承诺所填信息真实有效。系统结合个人填写信息及防疫大数据最终生成健康码。

  • 生三七和熟三七的区别是什么(生三七和熟三七的区别是啥)

    以下内容希望对你有帮助!根据症状不同,选择三七也存在差异,生三七主要适用于跌打损伤患者;熟三七常用于治疗身体虚弱、有贫血症患者,使其恢复健康。生三七与熟三七的药理作用不同,熟三七炮制后可以用于补血养血,适用于贫血患者服用;而生三七的镇痛、活血作用比较强,生三七可以用于治疗高血压、高血脂、冠心病等症状。

  • 重庆涪陵实验中学排名(重庆10所初代中学排行榜)

    如今的梁平中学,从一个小小的书院,成为重庆市重点中学、重庆市文明礼仪示范学校、重庆市德育示范校、重庆市绿色学校。是重庆直辖后首批确认的重庆市重点中学。距今已有270年历史,排行第五。2016年,以潼南中学校江北校区为校址,设初中部、高中部,成立“重庆市潼南第二中学校”。多次获得教育部特令嘉奖,成为社会各界口中的名校。又于2012年,重庆市江津聚奎中学校更名为重庆市聚奎中学校。