VUE中路由跳转传参问题

VUE中路由跳转有三种传参方式:

VUE中获取路由参数的方式

this.$route.params.book_id | this.$route.query.book_id

1 使用路径传参

在路由配置中设置路径参数变量
格式:path:/ShowBookDesc/:book_id
(:book_id为参数占位符,接收方使用该参数名获得传入的参数)
在静态路由中使用
<router-link :to="'ShowBook/'+book.book_id">xxx</router-link>
在动态路由中使用
:this.$router.push({path:ShowBook/${book_id}})

PS:ShowBook为路由配置中的path属性值,页面刷新后数据不丢失,地址栏中不显示参数,但是需要修改路由配置,不推荐使用

2 使用静态路由直接传递参数

静态路由使用方式
<router-link :to="{name:'ShowBook',params:{'book_id':book.book_id}}">
动态路由使用方式
this.$router.push({name:'ShowBook',params:{book_id:book_id}})

PS:ShowBook为路由配置中的name属性值,参数为一个json对象,页面刷新后数据会丢失,不推荐使用

3 通过query传递参数

静态路由使用方式
<router-link :to="{path:'/ShowBook',query:{book_id:book_id}}">xxx</router-link>
动态路由使用方式
this.$router.push({path:'/ShowBook'},query:{book_id:book_id})

PS:ShowBook为路由配置中的path属性值,页面刷新后数据不丢失,地址栏中使用?号分隔符传参,数据不会丢失,且不需更改路由配置,推荐使用

猜你喜欢

转载自blog.csdn.net/woschengxuyuan/article/details/129764823