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 Excel操作知识点
Apr 24 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
Sep 21 Javascript
JS把内容动态插入到DIV的实现方法
Jul 19 Javascript
jQuery实现点击查看大图并以弹框的形式居中
Aug 08 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
Aug 12 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
React Native实现进度条弹框的示例代码
Jul 17 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
Oct 18 Javascript
常用的 JS 排序算法 整理版
Apr 05 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 Javascript
Vue实现附件上传功能
May 28 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 header函数的常用http头设置
2015/06/25 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
vue实现文字加密功能
2019/09/27 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Python采用raw_input读取输入值的方法
2014/08/18 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
介绍一下游标
2012/01/10 面试题
挖掘机司机岗位职责
2014/02/12 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
个人思想政治总结
2015/03/05 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
JS数组方法some、every和find的使用详情
2021/10/05 Javascript
详解nginx location指令
2022/01/18 Servers
PYTHON InceptionV3模型的复现详解
2022/05/06 Python