vue路由跳转传参
针对vue路由跳转传参这个问题,本文将综合不同朋友对这个vue路由跳转传参能不在路由显示吗的知识为大家一起来解答,希望能帮到大家
本文内容目录一览:
vue路由传参的三种基本方式
项目中很多情况下都需要进行路由之间的传值,想过很多种方式
sessionstorage/localstorage/cookie 进行离线缓存存储也可以,用vuex也可以,不过有些大材小用吧,不管怎么说因场景而异
下面我来说下vue自带的路由传参的三种基本方式
先有如下场景 点击当前页的某个按钮跳转到另外一个页面去,并将某个值带过去
第一种方法 页面刷新数据不会丢失
需要对应路由配置如下:
可以看出需要在path中添加/:id来对应 $router.push 中path携带的参数。在子组件中可以使用来获取传递的参数值
另外页面获取参数如下
第二种方法 页面刷新数据会丢失
通过路由属性中的name来确定匹配的路由,通过params来传递参数。
对应路由配置: 注意这里不能使用:/id来传递参数了,因为组件中,已经使用params来携带参数了。
子组件中: 这样来获取参数
第三种方法
使用path来匹配路由,然后通过query来传递参数
这种情况下 query传递的参数会显示在url后面?id=?
对应路由配置:
对应子组件: 这样来获取参数
特别注意哦,
组件中 获取参数的时候是 router 这很重要~~~
vue路由跳转
1.router link to=""/ 可以接收一个url 如'/home' ,也可以接收一个对象 {name:'home'} {path:'/home'}
2.this.$router.push() 也可以接收一个url ’/home‘ ,也可以接收以一个对象,并配置参数,
可以使用query配置需要携带的参数,需要使用path引入query,如果使用query配置参数,则会在地址栏中显示参数,传值方式类似于get,页面刷新参数不会消失
{path:'/home',query:{
id:this.id
}
}
也可以使用params配置需要携带的参数,需要使用name引入params,如果使用params配置参数,不会在地址栏中显示参数,传值方式类似于post,页面刷新参数会消失
{name:'home',params:{
id:this.id
}
}
传参方式也可以使用动态路由 this.$router.push('/detail/'+id)
3.this.$router.replace() 使用方式同this.$router.push()
replace会覆盖前一个路由,push是在前一个路由后面添加一个路由,区别在于回退时,push会回退到上一个路由,replace因为覆盖了上一个路由,则会回到至上上个路由
vue 路由四种方式 (带参数)跳转
replace和push区别:
router.push(location) 会向 history 栈添加一个新的记录,当用户点击浏览器后退按钮时,则回到之前的 URL。
router.replace(location) ,replace 属性(默认值: false),它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。
注意:获取路由上面的参数,用的是$route,后面没有r
params是路由的一部分,必须要有。query是拼接在url后面的参数,没有也没关系。
params一旦设置在路由,params就是路由的一部分,如果这个路由有params传参,但是在跳转的时候没有传这个参数,会导致跳转失败或者页面会没有内容。
params、query不设置也可以传参,但是params不设置的时候,刷新页面或者返回参数会丢失。
两者都可以传递参数,区别是什么?
query 传参配置的是path,而params传参配置的是name,在params中配置path无效
query在路由配置不需要设置参数,而params必须设置
query传递的参数会显示在地址栏中
params传参刷新会无效,但是query会保存传递过来的值,刷新不变
关于vue路由跳转传参和vue路由跳转传参能不在路由显示吗的文章,就是上面的全部内容了,不知道有没有是您需要的内容。如果可以帮到您,记得收藏本站