vue路由文件相关配置

  • vue路由文件相关配置
    • 一、vue嵌套路由路径斜杠'/'的使用
      • 1.根组件上的path
      • 2.根组件上的redirect
      • 3.子组件里面的path
      • 总结
    • 二、路由守卫
      • 1、作用
      • 2、分类
      • 3、全局守卫
      • 4、独享路由守卫:某一个路由所独享的;
      • 5、组件内路由守卫
    • 三、vue路由中的meta

vue路由文件相关配置

一、vue嵌套路由路径斜杠’/'的使用

路径前加/代表根路径,绝对路径,不加斜杠是相对路径

{path: '/about',name: 'about',redirect: '/home',component: function () {return import('@/views/AboutView.vue')},children: [{path: '/home',name: 'home',component: function () {return import('@/views/HomeView.vue')},meta:{requireAuth:true}}]}

1.根组件上的path

如果为/about,浏览器地址栏输入 http://localhost:8080/about

如果为about(不加/),浏览器地址栏输入 http://localhost:8080/home 可以直接访问到吗?

答案是:不可以。原因是,不加/代表相对路径,它的相对位置在哪,我也不知道,但这里不是/

所以记着,这个路径前面一定要加“/”

2.根组件上的redirect

这个加不加“/”都一样,因为默认是加上的,redirect为重定向,默认使用绝对路径

3.子组件里面的path

(只要能访问到子组件,父组件就会被渲染出来)
同样的如果其值为:/home代表绝对路径,通过浏览器http://localhost:8080/index 可以直接访问到

如果是 home(不加/) 呢 ,它代表是相对路径,那相对于谁呢,当然是父组件了。因此,如果你想访问次子组件就要这样访问
http://localhost:8080/home/index

总结

根组件中的path必须加‘/’,因为不知道其相对谁
子组件(children)中的path加不加都可以,但在浏览器中输入的地址不同:
‘/home’: localhost:8080/home
‘home’: localhost:8080/about/home

参考原文链接:https://blog.csdn.net/weixin_43887184/article/details/103546681

二、路由守卫

1、作用

对路由进行权限控制;

2、分类

全局守卫、独享守卫、组件内守卫;

3、全局守卫

全局前置守卫,初始化时执行,每次路由切换前执行

切换路由之前判断即将前往的路由是否需要登录,如果不需要直接跳转,如果需要则再判断当前是否已登录,若未登录跳转到登录页,已登录跳转至下一页

router.beforeEach((to,from,next)=>{if(to.meta.isAuth){//判断是否需要鉴权if(localStorage.getItem('token')==='token'){next()}else{next('/login')}}else{next()}
})

全局后置路由守卫,初始化时执行,每次路由切换之后被调用

router.afterEach(()=>{if(to.meta.isAuth){//判断是否需要鉴权document.title=to.meta.title}else{document.title='vue_test'}
})

4、独享路由守卫:某一个路由所独享的;

beforeEnter:(to,from,next)=>{if(to.meta.isAuth){//判断是否需要鉴权if(localStorage.getItem('token')==='token'){next()}}else{next()}
}

5、组件内路由守卫

通过路由规则进入该组件时调用

beforeRouteEnter(to,from,next){console.log('beforeRouteEnter');if(to.meta.isAuth){//判断是否需要鉴权if(localStorage.getItem('token')==='token'){next()}}else{next()}
}

通过路由规则离开该组件时调用

 beforeRouteLeave(to,from,next){next()}

原文链接:https://blog.csdn.net/qq_49916504/article/details/125350312

三、vue路由中的meta

我们经常会在进入一个页面时判断是否已经登陆,经常会用到路由导航守卫router.beforeEach(to, from, next), 一个两个页面还好,但是多的话,就会麻烦,并且路由还会嵌套。这时可以使用meta。

meta (元数据)
在配置路由时,经常会用到path,name,component,还有一个就是meta 元数据,给每个路由添加一个自定义的meta对象,在meta对象中可以设置一些状态,来进行一些操作。经常用它来做登录校验。

const routes = [{path: '/',name: 'tryPage',component: function () {return import('@/views/tryPage.vue')},meta: {requireAuth: false,title: 'tryPage'}},{path: '/about',name: 'about',redirect: '/home',component: function () {return import('@/views/AboutView.vue')},children: [{path: 'home',name: 'home',component: function () {return import('@/views/HomeView.vue')},meta: {requireAuth: true,title: 'home'}}]}
]

配合路由守卫实现某些页面需要已登录的状态才能进入的功能

router.beforeEach((to,from,next)=>{if(to.meta.requireAuth){//判断是否需要鉴权if(localStorage.getItem('token')==='token'){next()}else{next('/login')}}else{next()}
})

meta中还可以根据自身需要定义其他参数,比如title,通过监听$route.meta.title对特定页面作出处理

参考原文链接:https://blog.csdn.net/qiaoqiaoBigBoss/article/details/112908640

本文结合了多篇站内帖子用以自身记录总结学习,如有侵权请联系我修改

vue路由文件相关配置相关推荐

  1. Vue路由之axios配置JWT身份验证

    前言: 认证和授权,其实吧简单来说就是:认证就是让服务器知道你是谁,授权就是服务器让你知道你什么能干,什么不能干(例如下面meta元信息),认证授权俩种方式:Session-Cookie与JWT,下面 ...

  2. 网工路由交换相关配置

    思科2950交换机相关配置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  3. vue路由文件自动化处理

    你还在一个个路由文件引入而烦恼吗 你还被别人说,你只是一个只会ctrl+ c ctrl +v的码仔吗 可是 做个与世无争的垃圾不好吗 global.ts // 可以把检测的类型去掉,转成js// 关键 ...

  4. vue .prettierrc文件常见配置, 以及配置 Prettier - Code formatter 插件 格式化

    使用vcode下载安装 Prettier - Code formatter(要启用该插件) 然后还要 设置 vcode 编辑器的 默认格式化 为 Prettierxxx , 操作步骤: 在vcode ...

  5. 关于ProjectConfig.mk文件相关配置编译名字长度规定

    谷歌本身对Android内部相关镜像文件头有字节的规定限制. 近期发现在项目文件rlk_projects\cxlite_z3713_a1_zmvf#####\ProjectConfig.mk中: CU ...

  6. vue2.0 点击跳转传参--vue路由跳转传参数

    vue中路由跳转传参数有多种,自己常用的是下面的几种 通过router-link进行跳转 通过编程导航进行路由跳转 1. router-link [html] view plaincopy <r ...

  7. 解决 VUE history模式 后端配置 微信支付目录限制5个 等问题

    前言 作为小公司的WEB开发组组长, 本身为全栈工程师, 主攻方向为PHP. 最近将项目由MVC模式改为了MVVM, 做为小公司的为了节省成本, 招聘了一个新手前端, 编写VUE 新手的技术,无奈并不 ...

  8. Vue脚手架与Vue路由

    一.Vue脚手架 1.安装脚手架 脚手架是基于node的环境. nodejs安装 脚手架全局安装:在cmd提示命令符中输入 npm i -g @vue/cli 检测是否安装成功:安装好后可输入vue ...

  9. vue路由跳转传参 Orz

    好困好困好困 常用路由跳转方式 通过router-link进行跳转 通过$router.push进行跳转 router-link <router-link :to="{path: 'y ...

最新文章

  1. Java --循环截取字符串
  2. 机器学习 —— 概率图模型(推理:连续时间模型)
  3. KVM-QEMU基本工作原理分析(二)
  4. MySQL 特殊参数
  5. websocket没准备好如何解决_那些很重要,但是不常用的技术,websocket
  6. ruby hash方法_Ruby中带有示例的Hash.default(key = nil)方法
  7. 计算机图形学考试题及答案_计算机图形学考试题及答案
  8. JVM——对象的创建与内存布局
  9. Python 集合(set) 介绍
  10. openlayers入门开发系列之热力图篇
  11. 06 全局锁和表锁 :给表加个字段怎么有这么多阻碍? *(笔记)转
  12. rsycn定时同步/备份异地主机文件
  13. FPGA实现SPI 协议
  14. 鸿蒙系统的软件怎么下载,鸿蒙系统官网下载软件电脑版
  15. 下列选项中 采用边界值平滑_2014年10月湖南自考:软件工程全真模拟试题二
  16. 电脑如何重装系统之使用PE优盘启动工具安装win10操作系统
  17. 机器学习(二)--- KNN(K-Nearest Neighbors)
  18. 互联网公司背后的“深套路”:恶意举报对手,假招聘骗取信息
  19. 成绩不好的穷孩子,该做出选择了
  20. mysql连接与嵌套查询_数据库之嵌套查询与连接查询

热门文章

  1. Latex矩阵和表达式组的绘制
  2. html2canvas页面滚动时截图不全空白问题
  3. 跑跑卡丁车最新等级奖励2016
  4. Struts2+Spring+Hibernate 三大框架的合并集成
  5. MATLAB R2019a绘制时序数据小波方差图[新手向/保姆级]
  6. 《计算机组成原理》课程设计---微程序设计
  7. opencv-python 绘制图像直方图及直方图均衡化
  8. 最长上升子序列(动态规划)
  9. 硬链接、软链接、ln命令
  10. TCP和 UDP的区别