“约见”面试官系列之常见面试题之第一百零一篇之vue-router传参(建议收藏)

vue-router传递参数分为两大类

 

  • 编程式的导航 router.push
  • 声明式的导航 <router-link>

编程式的导航 router.push

编程式导航传递参数有两种类型:字符串、对象。

字符串

字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数:

this.$router.push("home");

对象

想要传递参数主要就是以对象的方式来写,分为两种方式:命名路由、查询参数,下面分别说明两种方式的用法和注意事项。

命名路由

命名路由的前提就是在注册路由的地方需要给路由命名如:

命名路由传递参数需要使用params来传递,这里一定要注意使用params不是query。目标 页面接收传递参数时使用params

 特别注意:命名路由这种方式传递的参数,如果在目标页面刷新是会出错的

使用方法如下:

this.$router.push({ name: 'news', params: { userId: 123 }})

代码如下:

 
  1. <template>

  2. <div class="hello">

  3. <h1>{{ msg }}</h1>

  4. <button @click="routerTo">click here to news page</button>

  5. </div>

  6. </template>

  7.  
  8. <script>

  9. export default {

  10. name: 'HelloWorld',

  11. data () {

  12. return {

  13. msg: 'Welcome to Your Vue.js App'

  14. }

  15. },

  16. methods:{

  17. routerTo(){

  18. this.$router.push({ name: 'news', params: { userId: 123 }});

  19. }

  20. }

  21. }

  22. </script>

  23.  
  24. <style>

  25. </style>

接受传递的参数:

 
  1. <template>

  2. <div>

  3. this is the news page.the transform param is {{this.$route.params.userId}}

  4. </div>

  5. </template>

  6. <script>

  7.  
  8. </script>

运行效果如下:

 

查询参数

查询参数其实就是在路由地址后面带上参数和传统的url参数一致的,传递参数使用query而且必须配合path来传递参数而不能用name,目标页面接收传递的参数使用query。
注意:和name配对的是params,和path配对的是query
使用方法如下:

this.$router.push({ path: '/news', query: { userId: 123 }});

代码如下:

 
  1. <template>

  2. <div class="hello">

  3. <h1>{{ msg }}</h1>

  4. <button @click="routerTo">click here to news page</button>

  5. </div>

  6. </template>

  7.  
  8. <script>

  9. export default {

  10. name: 'HelloWorld',

  11. data () {

  12. return {

  13. msg: 'Welcome to Your Vue.js App'

  14. }

  15. },

  16. methods:{

  17. routerTo(){

  18. this.$router.push({ path: '/news', query: { userId: 123 }});

  19. }

  20. }

  21. }

  22. </script>

  23.  
  24. <style>

  25. </style>

接收参数如下:

 
  1. <template>

  2. <div>

  3. this is the news page.the transform param is {{this.$route.query.userId}}

  4. </div>

  5. </template>

  6. <script>

  7. </script>

运行效果如下:

 

声明式的导航

声明式的导航和编程式的一样,这里就不在过多介绍,给几个例子大家对照编程式理解,例子如下:

字符串

<router-link to="news">click to news page</router-link>

命名路由

<router-link :to="{ name: 'news', params: { userId: 1111}}">click to news page</router-link>

运行效果如下:

查询参数

<router-link :to="{ path: '/news', query: { userId: 1111}}">click to news page</router-link>

运行效果如下:

最后总结:路由传递参数和传统传递参数是一样的,命名路由类似表单提交而查询就是url传递,在vue项目中基本上掌握了这两种传递参数就能应付大部分应用了,最后总结为以下两点:
1.命名路由搭配params,刷新页面参数会丢失
2.查询参数搭配query,刷新页面数据不会丢失
3.接受参数使用this.$router后面就是搭配路由的名称就能获取到参数的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“约见”面试官系列之常见面试题之第一百零二篇之vue-router的两种模式(建议收藏)

众所周知&#xff0c;vue-router有两种模式&#xff0c;hash模式和history模式&#xff0c;这里来谈谈两者的区别。 hash模式 hash模式背后的原理是onhashchange事件,可以在window对象上监听这个事件: 上面的代码可以通过改变hash来改变页面字体颜色&#xff0c;虽然没什么用…

olive videoeditor开源跨平台视频编辑器

目录 简介 官网 使用 简介 olive是开源的视频编辑软件&#xff0c;目前下载版本为Alpha版&#xff0c;但已基本可用。 本文讲解添加图片、特效及文字&#xff0c;最后导出视频的简单过程。 官网 Olive - Professional Open-Source Video Editor 下载地址 Olive - Profes…

Centos7.5 Ambari2.7.4部署

目录 1.简介 2.环境准备 3.SSH 免密码登录 4.服务环境 5.本地源搭建 6.安装 7.启动 8.Web页面部署服务 1.简介 本文介绍了Ambari2.7.4在CentOS7.5中使用本地镜像方式进行加速部署。 Ambari Apache Ambari是一种基于Web的工具&#xff0c;支持Apache Hadoop集群的供应…

“约见”面试官系列之常见面试题之第一百零五篇之v-if与v-show(建议收藏)

相同点&#xff1a;v-if与v-show都可以动态控制dom元素显示隐藏 不同点&#xff1a;v-if显示隐藏是将dom元素整个添加或删除&#xff0c;而v-show隐藏则是为该元素添加css--display:none&#xff0c;dom元素还在。 都修改为false后&#xff0c;第一个div是直接被移除掉了 需要…

Apache Nifi 入门与进阶 GitChat连接

NiFi 是美国国家安全局开发并使用了 8 年的可视化数据集成产品&#xff0c;2014 年 NAS 将其贡献给了 Apache 社区&#xff0c;2015 年成为 Apache 顶级项目。 大数据平台都需要进行数据流转&#xff0c;Apache Nifi 作为一款强大的数据流开源软件&#xff0c;支持大量的输入输…

“约见”面试官系列之常见面试题之第一百零六篇之css只在当前组件中起作用(建议收藏)

方法很简单&#xff0c;在组件中的style前面加上scoped就可以了&#xff0c;示例&#xff1a;

html中a标签如何设置行宽高

方法一&#xff1a;float&#xff0c;对a样式盒子float:left让它成浮动 直接演示一下了(实现下面页面) 代码如下 <style>#page{width:120px; /* 在外面画一个区域 */height:700px;}li{list-style:none;}a{text-decoration:none; …

jmeter监控服务资源

转&#xff1a;http://www.cnblogs.com/chengtch/p/6079262.html 1、下载需要的jmeter插件 如图上面两个是jmeter插件&#xff0c;可以再下面的链接中下载&#xff1a; https://jmeter-plugins.org/downloads/old 第三个是放在服务器中的&#xff0c;可在下面的度盘中下载&…

RANSAC算法在图像拼接上的应用的实现

关于算法原理请参考《基于SURF特征的图像与视频拼接技术的研究》。一、问题提出RANSAC的算法原理并不复杂&#xff0c;比较复杂的地方在于“建立模型”和“评价模型”。我们经常看到的是采用“直线”或者“圆”作为基本模型进行“建立”&#xff0c;而采用所有点到该“直线”或…

ajax 接收json数据的进一步了解

var url "../searchclasses";$.ajax({url: url,type: "post",dataType: "json",//以json形式接收error: function() {alert("error");},success: function(data) {var html "";$.each(data, function(index, content) {va…

Spark在Ambari集群环境的使用

进入安装sparkclient的节点 hdfs准备一个文件 su - hdfs vi text.txt 随便写几行东西 #创建目录 hdfs dfs -mkdir /user/hdfs/test #上传文件 hdfs dfs -put test.txt /user/hdfs/test/ #检查文件是否在 hdfs dfs -ls /user/hdfs/test/ #检查内容是否对 hdfs dfs -c…

Spark实战之读写HBase

1 配置 1.1 开发环境&#xff1a; HBase&#xff1a;hbase-1.0.0-cdh5.4.5.tar.gzHadoop&#xff1a;hadoop-2.6.0-cdh5.4.5.tar.gzZooKeeper&#xff1a;zookeeper-3.4.5-cdh5.4.5.tar.gzSpark&#xff1a;spark-2.1.0-bin-hadoop2.61.2 Spark的配置 Jar包&#xff1a;需要HBa…

vitualbox命令操作VBoxManage

进入本地virtualbox管理 运行服务器上的virtualbox 本地直接启动了virtualbox界面 这个很牛啊&#xff0c;直接本地图形化管理了&#xff0c;不用纠结服务器端没有显卡&#xff0c;进不去图形界面的问题了。 研究了VBoxManage startvm 最后才发现可能这样也行&#xff0c;哈…

Hadoop2之NameNode HA详解

在Hadoop1中NameNode存在一个单点故障问题&#xff0c;如果NameNode所在的机器发生故障&#xff0c;整个集群就将不可用(Hadoop1中虽然有个SecorndaryNameNode&#xff0c;但是它并不是NameNode的备份&#xff0c;它只是NameNode的一个助理&#xff0c;协助NameNode工作&#x…

Apache Nifi 实战:多表导入实现及填坑 GitChat连接

NiFi 是美国国家安全局开发并使用了 8 年的可视化数据集成产品&#xff0c;2014 年 NAS 将其贡献给了 Apache 社区&#xff0c;2015 年成为 Apache 顶级项目。 大数据平台都需要进行数据流转&#xff0c;Apache Nifi 作为一款强大的数据流开源软件&#xff0c;支持大量的输入输…

快速入门系列之 Scala 语言 GitChat连接

Scala 是一门多范式的编程语言&#xff0c;设计初衷是要集成面向对象编程和函数式编程的各种特性。目前常应用于 Spark、后端开发等&#xff0c;Twitter 等公司也选择其作为后端语言。 本文以实例为导向&#xff0c;讲解 Scala 这门语言&#xff0c;适合有一定其他面向对象语言…

快速入门系列之 Rust 语言 GitChat连接

Rust 是一枚新星&#xff0c;兼顾开发效率和执行效率的语言。本文以实例为导向&#xff0c;讲解 Rust 这门语言&#xff0c;适合有一定其他面向对象语言基础的人员快速入门。 本文将讲解如下内容&#xff1a; - Hello World 从头起 - 各种类型各种算 - 各式流程来控制 - 数组…

工作总结5:插槽的使用

什么是插槽&#xff1f; 插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标…