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是当前路由的信息对象,是一个只读的对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容