vue 中的动态传参和query传参操作


Posted in Javascript onNovember 09, 2020

Vue router 如何传参

params、query 是什么?

params:/router1/:id,这里的 id 叫做 params。例如/router1/123, /router1/789

query:/router1?id=123,这里的 id 叫做 query。例如/router1?id=456

query 方式传参和接收参数

传参: this.$router.push({ path:'/xxx' query:{ id:id } }) this.$router.push 传参时, 并不会引起页面刷新。需要重新请求数据,代码如下。

<div>shopName:{{shop.shopName}}</div>
export default{
 data(){
  return {
   shop:{shopName:"shopName"},
   shopNo:"123"
  };
 },
 mounted(){
  // 初始时加载店铺数据
  this.loadShop();
 },
 watch:{
  // shopNo改变时重新加载
  shopNo:function(newShopNo){
   this.loadShop();
  }
 },
 methods:{
  loadShop(){
   // 调用API获取shop数据
   var shop = {/*获取到的数据*/};
   this.shop=shop;
  }
 }
}

接收参数: this.$route.query.id

params 方式传参和接收参数

params 传参 路由界面: router.js: 路由设置这里,当你使用 params 方法传参的时候,要在路由后面加参数名,并且传参的时候,参数名要跟路由后面设置的参数名对应。使用 query 方法,就没有这种限制,直接在跳转里面用就可以

vue 中的动态传参和query传参操作

传参: this.$router.push({ name:'xxx' params:{ id:id } })

接收参数: this.$route.params.id

注意:如果路由上面不写参数,也是可以传过去的,但不会在 url 上面显示出你的参数,并且当你跳到别的页面或者刷新页面的时候参数会丢失(如下图所示),那依赖这个参数的 http 请求或者其他操作就会失败。

query 传参和 params 传参的区别

用法上的: query 要用 path 来引入,params 要用 name 来引入,接收参数都是类似的,分别是 this.$route.query.name 和 this.$route.params.name。注意接收参数的时候,已经是$route 而不是$router 了哦!!

展示上的: query 更加类似于我们 ajax 中 get 传参,params 则类似于 post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示所以两者不能同时使用!!!

router-link 和编程式导航两种跳转方式

通过 router-link 我们可以向路由到的组件传递参数,这在我们实际使用中时非常重要的。

编程式导航

vue 中的动态传参和query传参操作

router.push

router.replace 和 router.push()不同,使用 router.replace()会将一个访问记录 push 到 url 中,所以再退回了的时候一定会回到这里,而 router.replace()不是添加一个新的进入,而是替换栈顶元素,这样,在返回的时候,就会返回到栈顶元素的下面一个。

router.go

在浏览器记录中前进一步,等同于 history.forward() router.go(1)

后退一步记录,等同于 history.back() router.go(-1)

动态传参之坑

注意:params 传参,push 里面只能是 name:'xxxx',不能是 path:'/xxx',因为 params 只能用 name 来引入路由,如果这里写成了 path,接收参数页面会是 undefined!!!

补充知识:vue三种动态传参的方式

如下场景:

<el-table-column
  label="操作">
  <template slot-scope="scope">
   <el-button size="mini" type="primary" @click="goList(scope.row.id)">个人信息表</el-button>
  </template>
 </el-table-column>

.直接占位符的方式

goList(id){ 
 this.$router.push({path:`/line/${id}`}) 
}

需要对应路由配置如下:

{
  path:'/line/:id',
  name:'line',
  component:line
  }

二、通过路由属性中的name来确定匹配的路由,通过params来传递参数

goList(id){ 
  this.$router.push({ name:"line",params:{ orderId:id }}) 
}

对应路由配置如下:

{
  path:'/line',
  name:'line',
  component:line
}

三、通过 path来匹配路由,然后通过query来传递参数,传递的参数会暴露在地址栏中

goList(id){ 
 this.$router.push({ path: '/line',query: { orderId:id }})
}

对应路由配置同二

以上这篇vue 中的动态传参和query传参操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
Jan 13 Javascript
js动态生成form 并用ajax方式提交的实现方法
Sep 09 Javascript
微信小程序 action-sheet底部菜单详解
Oct 27 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
Node+OCR实现图像文字识别功能
Nov 26 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
介绍一下28个JS常用数组方法
May 06 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 #Javascript
在vue中使用eslint,配合vscode的操作
Nov 09 #Javascript
原生JavaScript实现五子棋游戏
Nov 09 #Javascript
Nuxt的动态路由和参数校验操作
Nov 09 #Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 #jQuery
JS实现炫酷轮播图
Nov 15 #Javascript
JS实现购物车基本功能
Nov 08 #Javascript
You might like
php静态文件返回304技巧分享
2015/01/06 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
JavaScript 指导方针
2007/04/05 Javascript
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
javascript实现连续赋值
2015/08/10 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
python并发2之使用asyncio处理并发
2017/12/21 Python
Python变量类型知识点总结
2019/02/18 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
解决pycharm同一目录下无法import其他文件
2020/02/12 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
土木工程专业个人求职信
2013/12/05 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
驳回起诉裁定书
2015/05/19 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
2021/10/16 Python