Vue路由 重定向和别名的区别说明


Posted in Javascript onSeptember 09, 2020

重定向

重定向也是通过 routes 配置来完成,下面例子是从 /a 重定向到 /b:

const router = new VueRouter({
 routes: [
 { path: '/a', redirect: '/b' }
 ]
})

重定向的目标也可以是一个命名的路由:

const router = new VueRouter({
 routes: [
 { path: '/a', redirect: '/b' }
 ]
})

甚至是一个方法,动态返回重定向目标:

const router = new VueRouter({
 routes: [
 { path: '/a', redirect: to => {
 // 方法接收 目标路由 作为参数
 // return 重定向的 字符串路径/路径对象
 }}
 ]
})

注意导航守卫并没有应用在跳转路由上,而仅仅应用在其目标上。在下面这个例子中,为 /a 路由添加一个 beforeEach 或 beforeLeave 守卫并不会有任何效果。

其它高级用法,请参考例子。

别名

『重定向』的意思是,当用户访问 /a时,URL 将会被替换成 /b,然后匹配路由为 /b,那么『别名』又是什么呢?

/a 的别名是 /b,意味着,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。

上面对应的路由配置为:

const router = new VueRouter({
 routes: [
 { path: '/a', component: A, alias: '/b' }
 ]
})

『别名』的功能让你可以自由地将 UI 结构映射到任意的 URL,而不是受限于配置的嵌套路由结构。

补充知识:vue-router重定向redirect和别名alias的用法区分

vue-router是vue框架的重要且常用的插件之一,用于单页面应用的路径打包管理。项目中常会用到redirect和alias以做“页面假动作”跳转。

重定向redirect

顾名思义,这个属性用于重定向页面跳转路径。简单说就是设置了一个路由,它有自己的路径,但重定向跳转至另一个路由。

export default new Router({
 routes: [
  {
   path: '/',
   name: 'HelloWorld',
   component:HelloWorld 
  },
  {
   path:'/gohome',
   redirect:'/'
  }
 ]
})

<router-link to="/">Home</router-link>|

<router-link to="/gohome">goHome</router-link>

如例子,“/gohome”的路由结果跳转至“/”根目录路由,最终结果就是两个路由显示的页面内容完全一致。注意:包括浏览器地址栏的路由原路径也随之改变显示为重定向的路径!

别名alias

其实就是为某个路由增加一个“花名”——新路径,使得不管应用到哪条路径最终都显示同一个路由的页面内容。举例:

export default new Router({
 routes: [
  {
   path:'/hi1',
   component:hi1,
   alias:'/Jsxj'
  }
 ]
})

<router-link to="/hi1">Hi1</router-link>|

<router-link to="/Jsxj">Jsxj</router-link>

如上,指向别名alias路径的'router-link'会跳转至path路径的路由页面,最终两个路径都会显示相同的页面内容。但区别于重定向的一点是,浏览器地址栏会保留alias的路径不会随之变动! 这可能是客户往往更想看到的东西。

另外,重定向带参数的目标路由时,该路由的路径中参数名应与目标路由路径参数名一致,才可以向目标路由传递对应参数值。

以上这篇Vue路由 重定向和别名的区别说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery的滑动样例代码
Nov 20 Javascript
JQuery打造省市下拉框联动效果
May 18 Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 Javascript
详解JS几种变量交换方式以及性能分析对比
Nov 25 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 Javascript
vue-cli项目中怎么使用mock数据
Sep 27 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
Aug 01 Javascript
vue中的适配px2rem示例代码
Nov 19 Javascript
对于防止按钮重复点击的尝试详解
Apr 22 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 #Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 #Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 #jQuery
js实现右键弹出自定义菜单
Sep 08 #Javascript
vue 使用原生组件上传图片的实例
Sep 08 #Javascript
使用js和canvas实现时钟效果
Sep 08 #Javascript
javascript使用canvas实现饼状图效果
Sep 08 #Javascript
You might like
4.与数据库的连接
2006/10/09 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php对称加密算法示例
2014/05/07 PHP
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
详解Python中with语句的用法
2015/04/15 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
django缓存配置的几种方法详解
2018/07/16 Python
Python subprocess库的使用详解
2018/10/26 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
python实现PID算法及测试的例子
2019/08/08 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
教学大赛获奖感言
2014/01/15 职场文书
考试诚信承诺书
2014/05/23 职场文书
公司员工活动策划方案
2014/08/20 职场文书
作风建设剖析材料
2014/10/06 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
初中班主任工作随笔
2015/08/15 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书