Vue-router 第6节 vue-router的重定向-redirect
目录
第6节 vue-router的重定向-redirect
开发中有时候我们虽然设置的路径不一致,但是我们希望跳转到同一个页面,或者说是打开同一个组件。这时候我们就用到了路由的重新定向redirect参数。
redirect基本重定向
我们只要在路由配置文件中(/src/router/index.js
)把原来的component换成redirect参数就可以了。我们来看一个简单的配置。
export default new Router({
routes: [
{
path: '/',
component: HelloWorld
},{
path:'/params/:newsId(\\d+)/:newsTitle',
component:Params
},{
path:'/goHome',
redirect:'/'
}
]
})
相应的,App.vue页面只需添加:
<router-link to="/goHome">goHome</router-link>|
这里我们设置了gohome路由,但是它并没有配置任何component(组件),而是直接redirect到path:’/’下了,这就是一个简单的重新定向。这个时候能跳回到默认页面(我们的Home页面),但地址栏还是http://localhost:8080/#/,不会改变。
重定向时传递参数
我们已经学会了通过url来传递参数,那我们重定向时如果也需要传递参数怎么办?其实vue也已经为我们设置好了,我们只需要在redirect后边的参数里复制重定向路径的path参数就可以了。我们来看一段代码:
{
path:'/params/:newsId(\\d+)/:newsTitle',
component:Params
},{
path:'/goParams/:newsId(\\d+)/:newsTitle',
redirect:'/params/:newsId(\\d+)/:newsTitle'
}
相应的,在App.vue中添加:
<router-link to="/goParams">goParams</router-link>
已经有了一个params路由配置,我们在设置一个goParams
的路由重定向,并传递了参数。这时候我们的路由参数就可以传递给params.vue
组件了。参数接收方法和正常的路由接收方法一样。
点击goParams:
我们发现参数能够进行重定向,地址栏也变化成params。
但如果什么都不传,只写<router-link to="/goParams">goParams</router-link>
,页面没有任何内容,地址栏还是http://localhost:8080/#/goParams