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 事件属性绑定带参数的函数
Mar 13 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
Jan 24 Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
Node.js connect ECONNREFUSED错误解决办法
Sep 15 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
Vue父子组件双向绑定传值的实现方法
Jul 31 Javascript
从零开始封装自己的自定义Vue组件
Oct 09 Javascript
浅谈JavaScript面向对象--继承
Mar 20 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
Snoopy类使用小例子
2008/04/15 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
如何让CI框架支持service层
2014/10/29 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python 判断网络连通的实现方法
2018/04/22 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
python操作kafka实践的示例代码
2019/06/19 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Flask模板引擎Jinja2使用实例
2020/04/23 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python