vue-router 中使用query和params传参的区别

使用场景:当我们在vue应用中进行路由跳转时,有时候跳转后的页面需要用到跳转前页面的数据,当然实现方法有很多种,vuex,localstorage,事件总线等。当数据量不大时,通常有时只需要传递一个id,这时使用这些方法多少有些繁琐,而使用路由传参的的方式就要简便许多。

路由传参分为params传参和query传参。

1.params传参

有声明式和编程式两种写法

声明式:

<router-link :to="{ name: 'home', params: { name: name } }">

编程式:

 this.$router.push({
    name: 'home',//只能使用name,使用path会跳转失败
    params: { name: '张三' },
  })

home 页面可以使用 this.$route.params接收传过来的数据。

注意:使用params传参的数据在页面刷新后会消失,如果不想要刷新后数据消失,需要在路由文件中将路由配置为动态路由。如:

 {
    path: '/home/:name',
    name: 'home',
    component: Home
  }

这样的话:name就成home页面路由的一部分,如果不传参数的话会跳转失败。

2.query传参

同样有声明式和编程式两种写法

声明式:

<router-link :to="{ name: 'home', query: { name: name } }">

编程式:

 this.$router.push({
    name: 'home', //可以使用name或path
    query: { name: '张三' },
  })

home 页面可以使用 this.$route.query 接收传过来的数据。

总结:

1.params传参和query传参都支持编程式和声明式两种写法。

2.params只能配合name使用,query既可以配合name使用,也可以配合path使用。

3.params的参数不会显示在地址栏中,类似于网络请求的post请求;query的参数会显示在地址栏中,类似网络请求的的get请求。

4.params传递的参数在刷新页面后会消失,如果想要不消失的话需要配置成动态路由;query传递的参数不需要配置刷新页面后也依然存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值