关于vue-router 中参数传递的那些坑(params,query)

vue-router传递参数分为两大类:

  1. 编程式的导航 router.push
  2. 声明式的导航

**query和params的区别,query相当于get请求,在页面跳转的时候,可以在地址栏看到请求参数,然而params则相当于post请求,参数不会在地址栏中显示,但是刷新页面之后参数会消失,可以使用localStorage进行存储。**代码如下:

if(this.$route.params.userId){this.value = this.$route.params.userId;localStorage.setItem('content',this.$route.params.userId)
}else{this.value = localStorage.getItem('content')console.log(this.value)
}

很多人都说query传参要用path来引入,params传参要用name来引入,确实是这样,不过只针对router-link方法,具体看代码

<router-link :to="{path:'/about/shopList',query:{userId:123}}">吃火锅
</router-link>
<router-link :to="{name:'shopList',params:{userId:456}}">吃羊蝎子
</router-link>他们同样都跳转到shopList页面,通过this.$route.params.userId和this.$route.query.userId都获取到了参数
如果将代码换成如下:<router-link :to="{path:'/about/shopList',params:{userId:123}}">吃火锅
</router-link>
<router-link :to="{name:'shopList',query:{userId:456}}">吃羊蝎子
</router-link>
同样跳到shopList页面,却拿不到参数userId。。。

router.push并不是如此,直接上代码

1.this.$router.push({name: 'shopList',params:{userId: 666}
})
2.this.$router.push({name: 'shopList',query:{userId: 666}
})
不仅name和params传递的参数有效,而且name和query传递的参数也是有效的。3.this.$router.push({path:'/about/shopList',query:{userId: 666}
})path和query传递参数,在shopList页面可以===接收到参数===
4.this.$router.push({path:'/about/shopList',params:{userId: 666}
})path和params传递参数,在shopList页面====接收不到参数====

以上代码亲测有效,大佬们不喜勿喷。

vue中params与query区别相关推荐

  1. vue中params和query的区别,以及具体用法

    query传递参数会在url后面用?连接起来,且参数之间用&&符号连接然后显示在页面的url中:params传递参数不会显示在页面中:query有点像ajax中的get请求,而para ...

  2. Vue路由params、query参数丢失解决

    在vue中路由传参有两种形式:1.params:2.query 解决办法:sessionStorage或者localStorage 两者的区别:localStorage是永久保存不清除一直存在,ses ...

  3. Vue 中data 和 data() 区别

    Vue 中data 和 data() {return {};}区别 一般简单Vue实例(常见教程视频中) new Vue({el: "#id",data: {message: &q ...

  4. vue中v-model和v-bind区别

    Vue中的数据绑定有三种方式 插值:也就是{{name}}的形式,以文本的形式和实例data中对应的属性进行绑定 v-bind v-model v-model 主要是用在表单元素中,它实现了双向绑定. ...

  5. js中for(const i in/of arr/obj)和vue中v-for指令的区别

    在js中 var obj = {q:'qqq',w:'www',e:'eee'}var arr1 = [{r:'rrr'},{t:'ttt'},{y:'yyy'}]var arr2 = ['uuu', ...

  6. 【原】vue-router中params和query的区别

    1.引入方式不同 query要用path来引入 this.$router.push({path: 'test',query: {type: 2,detail: '哈哈'} }) params要用nam ...

  7. Vue 中computed 与 methods 区别

    1.示例 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...

  8. Vue中methods与computed区别

    核心区别 computed是属性访问,method是函数调用 computed带有缓存功能,method没有 实例: <script>Vue.createApp({data() {retu ...

  9. Vue中 watch 和 computed 区别和使用场景

    在 vue 的项目中,经常用到 watch 和 computed 这两个属性.两个都是数值改变触发改变的属性,他们之间有什么区别? 1.区别 Computed: computed: 是计算属性,依赖其 ...

最新文章

  1. 重写了博客上的代码着色脚本
  2. python自动化办公兼职-python自动化办公?学这些就够用了
  3. 滴滴KDD2017论文:基于组合优化的出租车分单模型 By 机器之心2017年8月14日 10:29 数据挖掘顶会 KDD 2017 已经开幕,国内有众多来自产业界的论文被 KDD 2017 接收。
  4. 为什么Nginx性能比Apache高
  5. utxo模型_什么是UTXO?简析账户/余额模型和UTXO模型
  6. c语言第一个mfc程序,c语言之MFC的进程和线程
  7. VS2005中,access对只读目录的属性判断不准确
  8. 防火墙和路由器的滑铁卢:NAT Slipstreaming攻击
  9. 算术的c语言程序设计,C 程序设计:变量与算术表达式
  10. PyCharm 2019.3 EAP 7 发布,支持 R 语言插件
  11. ES6新特性_ES6语法糖-class的类继承---JavaScript_ECMAScript_ES6-ES11新特性工作笔记036
  12. 2.3.2 EditText(输入框)详解
  13. 还不知道spring的RestTemplate的妙用吗
  14. 从物联网到元宇宙 PPT
  15. c语言编译器 mini,Mini C编译器的设计与实现.ppt
  16. 计算机设备名称设备型号含义,设备名称品牌型号资料.doc
  17. 3ds max基础知识
  18. 中文文本分析(matplotlib的库的应用)
  19. js常用的正则匹配(一般不用修改)
  20. Unity3D 光照系统(一)

热门文章

  1. PRML 02 Introduction:贝叶斯概率
  2. css3 flex的IE8浏览器兼容问题
  3. Unity之动画系统的学习(一):场景动画
  4. 拼多多 标题 html,拼多多商家运营时如何绑定关联第三方店铺展示总销量的技巧教程...
  5. Themeleaf + checkbox + Mybatis 实现批量删除
  6. FineUI开源版之TreeGrid(修改)
  7. protostuff 工具类
  8. 学计算机可以买轻薄本吗,2021大学生买电脑,容易犯的七种错误!游戏本和轻薄本买哪个?...
  9. 小视频短视频短剧爽据API采集接口
  10. python微信小程序爬虫_Python爬取微信小程序实战(通用)