vue路由文件相关配置
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路由文件相关配置相关推荐
- Vue路由之axios配置JWT身份验证
前言: 认证和授权,其实吧简单来说就是:认证就是让服务器知道你是谁,授权就是服务器让你知道你什么能干,什么不能干(例如下面meta元信息),认证授权俩种方式:Session-Cookie与JWT,下面 ...
- 网工路由交换相关配置
思科2950交换机相关配置<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...
- vue路由文件自动化处理
你还在一个个路由文件引入而烦恼吗 你还被别人说,你只是一个只会ctrl+ c ctrl +v的码仔吗 可是 做个与世无争的垃圾不好吗 global.ts // 可以把检测的类型去掉,转成js// 关键 ...
- vue .prettierrc文件常见配置, 以及配置 Prettier - Code formatter 插件 格式化
使用vcode下载安装 Prettier - Code formatter(要启用该插件) 然后还要 设置 vcode 编辑器的 默认格式化 为 Prettierxxx , 操作步骤: 在vcode ...
- 关于ProjectConfig.mk文件相关配置编译名字长度规定
谷歌本身对Android内部相关镜像文件头有字节的规定限制. 近期发现在项目文件rlk_projects\cxlite_z3713_a1_zmvf#####\ProjectConfig.mk中: CU ...
- vue2.0 点击跳转传参--vue路由跳转传参数
vue中路由跳转传参数有多种,自己常用的是下面的几种 通过router-link进行跳转 通过编程导航进行路由跳转 1. router-link [html] view plaincopy <r ...
- 解决 VUE history模式 后端配置 微信支付目录限制5个 等问题
前言 作为小公司的WEB开发组组长, 本身为全栈工程师, 主攻方向为PHP. 最近将项目由MVC模式改为了MVVM, 做为小公司的为了节省成本, 招聘了一个新手前端, 编写VUE 新手的技术,无奈并不 ...
- Vue脚手架与Vue路由
一.Vue脚手架 1.安装脚手架 脚手架是基于node的环境. nodejs安装 脚手架全局安装:在cmd提示命令符中输入 npm i -g @vue/cli 检测是否安装成功:安装好后可输入vue ...
- vue路由跳转传参 Orz
好困好困好困 常用路由跳转方式 通过router-link进行跳转 通过$router.push进行跳转 router-link <router-link :to="{path: 'y ...
最新文章
- Java --循环截取字符串
- 机器学习 —— 概率图模型(推理:连续时间模型)
- KVM-QEMU基本工作原理分析(二)
- MySQL 特殊参数
- websocket没准备好如何解决_那些很重要,但是不常用的技术,websocket
- ruby hash方法_Ruby中带有示例的Hash.default(key = nil)方法
- 计算机图形学考试题及答案_计算机图形学考试题及答案
- JVM——对象的创建与内存布局
- Python 集合(set) 介绍
- openlayers入门开发系列之热力图篇
- 06 全局锁和表锁 :给表加个字段怎么有这么多阻碍? *(笔记)转
- rsycn定时同步/备份异地主机文件
- FPGA实现SPI 协议
- 鸿蒙系统的软件怎么下载,鸿蒙系统官网下载软件电脑版
- 下列选项中 采用边界值平滑_2014年10月湖南自考:软件工程全真模拟试题二
- 电脑如何重装系统之使用PE优盘启动工具安装win10操作系统
- 机器学习(二)--- KNN(K-Nearest Neighbors)
- 互联网公司背后的“深套路”:恶意举报对手,假招聘骗取信息
- 成绩不好的穷孩子,该做出选择了
- mysql连接与嵌套查询_数据库之嵌套查询与连接查询