路由跳转的几种方式
1、router-link(不带参)
<router-link :to="{name:'home'}">
<router-link :to="{path:'/home'}">
2、router-link(带参)
params
<router-link :to="{name:'user', params: {name: '张三'}}">
// 路由配置 path: "/home/:name"
// 获取参数 this.$route.params.name
query
<router-link :to="{name:'user', query: {name: '张三'}}">
// 以路径拼接的方式传参
// 获取参数 this.$route.query.name
3、push
不传参
this.$router.push('/home')
params传参
this.$router.push({name:'user',params: {name: '张三'}}) // 只能用 name
// 获取参数 this.$route.query.name
query传参
this.$router.push({path:'/user',query: {name: '张三'}})
// 获取参数 this.$route.params.name
4、this.$router.replace() (用法同上,push)
5、go
this.$router.go(n)
// 向前或者向后跳转n个页面,n可为正整数或负整数
6、resolve
当遇到需要在点击事件或函数中实现打开新页面,新窗口打开需求时
const { href } = this.$router.resolve({
path: '/user',
query: {
name: '张三'
}
}
window.open(href, '_blank');
// 获取参数 this.$route.query.name