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
Sep 24 Javascript
js window.event对象详尽解析
Feb 17 Javascript
jQuery学习笔记之Helloworld
Dec 22 Javascript
jQuery中调用WebService方法小结
Mar 28 Javascript
超链接的禁用属性Disabled使用示例
Jul 31 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
js实现文字闪烁特效的方法
Dec 17 Javascript
jQuery获取选中单选按钮radio的值
Dec 27 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
关闭Vue计算属性自带的缓存功能方法
Mar 02 Javascript
vue 图片裁剪上传组件的实现
Nov 12 Javascript
js基础语法与maven项目配置教程案例
Jul 15 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 什么是PEAR?
2009/03/19 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP 与 UTF-8 的最佳实践详细介绍
2017/01/04 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
再探JavaScript作用域
2014/09/24 Javascript
Javascript使用post方法提交数据实例
2015/08/03 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
小程序Request的另类用法详解
2019/08/09 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
numpy数组广播的机制
2019/07/12 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python列表list操作相关知识小结
2020/01/29 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
如何通过python检查文件是否被占用
2020/12/18 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
教学实验楼管理制度
2014/02/01 职场文书
运动会稿件50字
2014/02/17 职场文书
征婚广告词
2014/03/17 职场文书
社会公德演讲稿
2014/05/20 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
保卫工作个人总结
2015/03/03 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python