//path只可以和query搭配使用,如果和params同时使用,params会不生效
this.$router.push({
path:'/a',
query:{a:1},
//params:{a:1},
})
params只能与name搭配使用,
this.$router.push({
name:'comA',
//query:{a:1},name与query搭配也是可以的
params:{a:1},
})
//总结:path事多,只能使用query搭配,不能使用params
params与query的区别,
1.虽然二者都可以在未注册的情况下使用,但是params如果不注册的话,url框是不会显示参数的,此时刷新或者再跳转到第三个路由再跳回来,参数就丢失了,this.$route.params就获取不到了,因此使用params一定要在路由文件中注册。
2.二者本质上都是有浏览器url长度限制的问题的(除非你不注册params)parmas方式的长度会小一些,因为只显示value在地址栏中,不同浏览器限制的长度不同(见下表),一般情况下是够用,如果超长可以使用vuex代替。
长度限制:
- IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。
- 360极速浏览器对URL的长度限制为2118字节。
- Firefox(Browser)对URL的长度限制为65536字节。
- Safari(Browser)对URL的长度限制为80000字节。
- Opera(Browser)对URL的长度限制为190000字节。
- Google(chrome)对URL的长度限制为8182字节。