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 相关文章推荐
Array, Array Constructor, for in loop, typeof, instanceOf
Sep 13 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 Javascript
JS定义类的六种方式详解
May 12 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
vue登录路由验证的实现
Dec 13 Javascript
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
vue devtools的安装与使用教程
Aug 08 Javascript
js实现左右轮播图
Jan 09 Javascript
es6中let和const的使用方法详解
Feb 24 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
php实现面包屑导航例子分享
2015/12/19 PHP
php获得文件夹下所有文件的递归算法的简单实例
2016/11/01 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
java解析json方法总结
2019/05/16 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
详解ES6中的let命令
2020/04/05 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
Python strip lstrip rstrip使用方法
2008/09/06 Python
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
Python多线程thread及模块使用实例
2020/04/28 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
Ruby如何定义一个类
2012/10/08 面试题
面试后感谢信怎么写
2014/02/01 职场文书
向领导表决心的话
2014/03/11 职场文书
家长对孩子的评语
2014/04/18 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
医学检验专业自荐信
2014/09/18 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
初中班长竞选稿
2015/11/20 职场文书