当前位置: 首页 > Web前端 > vue.js

$router和$route的区别,路由跳转方法名,路径和参数传递方法params的区别,query

时间:2023-04-01 12:44:19 vue.js

1、$router和$route的区别$router:是路由操作对象,只写对象$route:路由信息对象,只读对象//$router操作路由跳转//stringthis.$router.push('home')//objectthis.$router.push({path:'home'})//命名路由this.$router.push({name:'user',params:{userId:123}})//加上查询参数,就变成/register?plan=123this.$router.push({path:'register',query:{plan:'123'}})//$route读取路由参数并接收varname=this.$route.params.name;二、params和query的区别1.this.$route.query的使用A.传递参数:this.$router.push({path:'/monitor',query:{id:id,}})B.获取参数:this.$route.query.idC,url形式(url中有参数)http://172.19.186.224:8080/#/monitor?id=1D,页面的使用路由时跳转到传递参数,跳转后刷新页面,数据依然会显示存在(项目中遇到过这个问题)2.this.$route.params的使用A.传递参数:this.$router.push({name:'monitor',params:{id:id,}})B.获取参数:this.$route.params.idC。url中的form(url中不带参数)http://172.19.186.224:8080/#/monitorD,使用页面间路由跳转传递参数时,跳转后刷新页面,数据不存在(这个问题是项目中遇到)3.name和pathpath和Name路由跳转方法的区别,可以使用query传参path路由跳转方法,params传参会被忽略,只可以使用name跳转到params传递参数。推送只能是name:'xxxx',不能是path:'/xxx',因为params只能用name来导入路由。如果这里写成路径,接收参数的页面将是undefined!!!此外,两者之间还存在一些差异。说白了query就相当于一个get请求。页面跳转时,可以在地址栏看到请求参数,而params相当于一个post请求,地址栏不会显示参数。注意:路由上不写参数可以传params,但是url上不会显示你的参数,跳转其他页面或刷新页面时参数会丢失,如何解决?