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 相关文章推荐
js计算页面刷新的次数
Jul 20 Javascript
javascript innerText和innerHtml应用
Jan 28 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
Apr 11 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
Bootstrap布局方式详解
May 27 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
Oct 12 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
js原生日历的实例(推荐)
Oct 31 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 Javascript
基于vue-cli3和element实现登陆页面
Nov 13 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/06/21 PHP
php调用shell的方法
2014/11/05 PHP
PHP错误机制知识汇总
2016/03/24 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python docx库用法示例分析
2019/02/16 Python
python numpy中cumsum的用法详解
2019/10/17 Python
基于python实现对文件进行切分行
2020/04/26 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
python调用百度API实现人脸识别
2020/11/17 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
毕业自我鉴定怎么写
2014/03/25 职场文书
团日活动总结书格式
2014/05/08 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python