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 相关文章推荐
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
jQuery实现垂直半透明手风琴特效代码分享
Aug 21 Javascript
用jQuery向div中添加Html文本内容的简单实现
Jul 13 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
js date 格式化
Feb 15 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
vue中component组件的props使用详解
Sep 04 Javascript
JavaScript惰性求值的一种实现方法示例
Jan 11 Javascript
JS数组Object.keys()方法的使用示例
Jun 05 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
JS校验与最终登陆界面功能完整示例
Jan 13 Javascript
element多个表单校验的实现
May 27 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 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
Google 静态地图API实现代码
2010/11/19 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
学习python之编写简单乘法口诀表实现代码
2016/02/27 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
简单实现python收发邮件功能
2018/01/05 Python
python字符串与url编码的转换实例
2018/05/10 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
python简单实现9宫格图片实例
2020/09/03 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
网上商城创业计划书范文
2014/01/31 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
中学生励志演讲稿
2014/04/26 职场文书
医学生求职自荐书
2014/06/12 职场文书
最新离婚协议书范本
2014/08/19 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
小学六年级毕业感言
2015/07/30 职场文书
修辞手法有哪些?
2019/08/29 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
Python可视化神器pyecharts绘制水球图
2022/07/07 Python