vue 路由传参 params 与 query两种方式的区别

vue 路由传参 params 与 query两种方式的区别

1.query的name和path

name:this.$router.push({name:'login',query:{id:5,name:'778'}})

path:this.$router.push({path:'/login',query:{id:5,name:'778'}})

2.params

this.$router.push({name:"login",params:{id:5,name:'778'}});

区别

1.query能用path和name来引入,params要用name来引入

2.接收参数都是类似的,分别是this.$route.query.name和this.$route.params.name。

3.query更加类似于我们ajax中get传参,params则类似于post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示

注意:query传参,刷新页面不会丢失参数。但是params会丢参数的。params 和path不能共存 所以只能用nameparams传参 需要在 路由配置 path/:id 这样就不会丢参最重要的一点,params刷新会消失,query则不会,params参数只要在路由中声明了就不会消失。params不会出现在地址栏,更加美观。路由声明path里加上参数(冒号加参数名称)比如/article/:articleId/:articleType 这样你通过params传递的articleId和articleType就会在路由路径里。$router是路由对象,是一个只写的对象$route是当前路由的信息对象,是一个只读的对象。

你可能感兴趣的:(vue 路由传参 params 与 query两种方式的区别)