“约见”面试官系列之常见面试题之第一百零一篇之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,一经查实,立即删除!

相关文章

mac os域名解析处理 清缓存 映射

清理dns缓存 手动清理dns缓存&#xff0c;Mac OS X系统中我们可以在系统中直接在命令行窗口&#xff08;terminal&#xff09;输入命令lookupd -flushcache或type dscacheutil -flushcache清空刷新dns 解析缓存 修改hosts文件 sudo vi /etc/hosts

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

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

Ubuntu热键控制spotify播放和音量调节

安装xbindkeys sudo apt-get install xbindkeys 新建配置文件 xbindkeys -d > ~/.xbindkeysrc 编辑热键 vim ~/.xbindkeysrc 添加以下命令 "dbus-send --print-reply --destorg.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pla…

python3 venv 虚拟环境使用

目录 1.背景 2.创建虚拟环境 3.目录结构 4.pip安装 5.环境使用 1.背景 很多应用、开源软件都是python写的&#xff0c;各自有各自的软件包和版本依赖&#xff0c;有事可能会有所冲突&#xff0c;为了避免这个冲突&#xff0c;建议采用venv虚拟环境。 本文讲解venv虚拟环…

“约见”面试官系列之常见面试题之第一百零三篇之vue-router实现路由懒加载(建议收藏)

vue异步组件es提案的import()webpack的require,ensure()vue异步组件技术 异步加载 vue-router配置路由 , 使用vue的异步组件技术 , 可以实现按需加载 . 但是,这种情况下一个组件生成一个js文件 /* vue异步组件技术 */ {path: /home,name: home,component: resolve > requir…

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

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

jQuery自定义动画

<!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>jQuery自定义动画</title> <script src"https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> …

CentOS7 Ambari2.7.5编译

目录 1.前言 2.编译环境安装 3.下载源码编译 4.大包提前下载 5.报错处理 5.1.报错 5.2.报错 5.3.报错 5.4.报错 5.5.报错 5.6.报错 5.7.报错 6.编译成功 7.官方说明 1.前言 本文讲解了在纯净CentOS7环境下&#xff0c;编译Ambari2.7.5所需进行的一系列操作及异常…

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集群的供应…

“约见”面试官系列之常见面试题之第一百零四篇之vue优点(建议收藏)

vue的优点&#xff1a; 1、轻量级框架 只关注视图层,是一个构建数据的视图集合,大小只有几十kb Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统 2、简单易学 国人开发,中文文档,不存在语言障碍,易于理解和学习 3、双向数据绑定 也就是所谓的响应式数据绑定。这…

打开.tdms文件

http://www.ni.com/tutorial/12049/en/ 转载于:https://www.cnblogs.com/lovexz/p/6844793.html

“约见”面试官系列之常见面试题之第一百零五篇之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;

centos7.1 postgresql10+postgis2.5离线安装

联网环境安装centos7.1&#xff0c;进行下载 wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install pgdg-redhat-repo-latest.noarch.rpm -y vi /etc/yum.repos.d/pgdg-redhat-all.repo 只保留pg10一段…

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

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

maven本地库已经有的包了,如何不下载(linux环境)

maven本地库已经有的包了&#xff0c;如何不下载 到所有资源包目录下&#xff08;.jar文件同级目录&#xff09;&#xff0c;删除_remote.repositories文件 cd ~/.m2/ find . -name _remote.repositories -delete

“约见”面试官系列之常见面试题之第一百零七篇之vue的作用(建议收藏)

Vue.js&#xff08;读音 /vjuː/, 类似于view&#xff09;是一套构建用户界面的渐进式框架。与其他重量级框架不同的是&#xff0c;Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层&#xff0c;并且非常容易学习&#xff0c;非常容易与其它库或已有项目整合。另一方…

CentOS7 Ambari2.7.4编译

目录 1.相关连接 2.编译 2.1.编译环境安装 2.2.下载源码 2.3.镜像加速 2.4.大包提前下载 2.5.各种错误处理 2.6.编译成功 1.相关连接 编译官方说明 Ambari Development - Apache Ambari - Apache Software Foundation 部署官方说明 Installation Guide for Ambari 2.…

Windows消息队列一

系统消息--ID范围 0-0x03FF由系统定义好的小哦啊拍下哦&#xff0c;可以在程序中直接使用。 用户自定义消息--ID范围0x0400-0x7FFF由用户自己定义&#xff0c;满足用户自己的需求。由用户自己发出消息&#xff0c;并相应处理自定义消息宏&#xff1a;WM_USER 应用程序消息--ID范…