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的路径不会随之变动! 这可能是客户往往更想看到的东西。
另外,重定向带参数的目标路由时,该路由的路径中参数名应与目标路由路径参数名一致,才可以向目标路由传递对应参数值。