vue router是vue官网推荐的路由组件,常见使用方法如下:
1、定义路由
export default new Router({
// mode: 'history', // Enable this if you need.
scrollBehavior: (to, from, savedPosition) => {
if (savedPosition) {
return savedPosition
} else {
return { x: 0, y: 0 }
}
},
base: process.env.BASE_URL,
routes: [
{
path: '/login',
component: () => import(/* webpackChunkName: "login" */ '@/views/login/index.vue'),
meta: { hidden: true }
},
{
path: '/404',
component: () => import(/* webpackChunkName: "404" */ '@/views/404.vue'),
meta: { hidden: true }
},
{
path: '/brand',
component: Layout,
children: [
{
path: 'index',
component: () => import('@/views/brand/index.vue'),
meta: {
title: '管理品牌',
icon: 'nested'
}
},
{
path: 'add',
component: () => import('@/views/brand/add.vue'),
meta: {
name: 'brandAdd',
title: '新增品牌',
icon: 'nested',
hidden: true
}
}
]
},
{
path: '*',
redirect: '/404',
meta: { hidden: true }
}
]
})
2、页面间跳转可以使用router-link标签或者Vue对象的router.push方法完成页面跳转,即
<router-link :to="{path: '/brand/add',query={'id': brandId}}" target="_blank" tag="a">
新增品牌
</router-link>
this.$router.push(path='/brand/add', query={ 'id': brandId })
上面两种方式都可以实现页面的跳转,但是需要注意的是如果是需要在页面间传递对象,可以通过params属性,但是params属性不能跟path使用,必须跟name一起使用,否则无法传递数据,即下面的方式
this.$router.push(name='brandAdd', query={ 'id': brandData })
下面这种使用方式无法在页面间传递数据
this.$router.push(path='/brand/add', query={ 'data': brandData })
跳转页面获取参数方式
this.$route.query.id
this.$route.params.data
参考文章: