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 相关文章推荐
javascript 文章截取部分无损html显示实现代码
May 04 Javascript
使用js简单实现了tree树菜单
Nov 20 Javascript
JQuery球队选择实例
May 18 Javascript
javascript判断图片是否加载完成的方法推荐
May 13 Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
ES6中Set和Map用法实例详解
Mar 02 Javascript
javascript实现简易数码时钟
Mar 30 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
PHPMailer安装方法及简单实例
2008/11/25 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
JavaScript中this函数使用实例解析
2020/02/21 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
博士生专家推荐信
2014/09/26 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技