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 相关文章推荐
javascript 实用的文字链提示框效果
Jun 30 Javascript
jquery 笔记 事件
Nov 02 Javascript
javascript针对DOM的应用分析(二)
Apr 15 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
javascript中call和apply的用法示例分析
Apr 02 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
May 11 Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 Javascript
vue不操作dom实现图片轮播的示例代码
Dec 18 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
Feb 16 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 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 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
vue el-tree 默认展开第一个节点的实现代码
2020/05/15 Javascript
[00:32]2018DOTA2亚洲邀请赛VG出场
2018/04/03 DOTA
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python 中 Meta Classes详解
2016/02/13 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python pytest进阶之fixture详解
2019/06/27 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
思想政治教育专业个人求职信范文
2013/12/20 职场文书
新农村建设典型材料
2014/05/31 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
股东大会通知
2015/04/24 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书