vue路由传参的三种基本方式 - 流年的樱花逝 - SegmentFault 思否

现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据。
父组件中:

<li v-for="article in articles" @click="getDescribe(article.id)">

methods:

方案一:

      getDescribe(id) {
//   直接调用$router.push 实现携带参数的跳转this.$router.push({path: `/describe/${id}`,})

方案一,需要对应路由配置如下:

   {path: '/describe/:id',name: 'Describe',component: Describe}

很显然,需要在path中添加/:id来对应 $router.push 中path携带的参数。在子组件中可以使用来获取传递的参数值。

this.$route.params.id

方案二:

父组件中:通过路由属性中的name来确定匹配的路由,通过params来传递参数。

       this.$router.push({name: 'Describe',params: {id: id}})

对应路由配置: 这里可以添加:/id 也可以不添加,不添加数据会在url后面显示,不添加数据就不会显示

   {path: '/describe',name: 'Describe',component: Describe}

子组件中: 这样来获取参数

this.$route.params.id

方案三:

父组件:使用path来匹配路由,然后通过query来传递参数
这种情况下 query传递的参数会显示在url后面?id=?

    this.$router.push({path: '/describe',query: {id: id}})

对应路由配置:

   {path: '/describe',name: 'Describe',component: Describe}

对应子组件: 这样来获取参数

this.$route.query.id
这里要特别注意 在子组件中 获取参数的时候是$route.params 而不是
$router 这很重要~~~

[更多详情](https://github.com/vuejs/vue-...)

tips
可能上面少了this 会误导新手 直接使用 $route来获取,所以这边加上this
tips 很多人说方案二有问题。 统计下 下面回复的有问题的地方
  • 需要在路由配置后面添加对应的参数即 需要添加/:id
  • 如果不添加:id数据会在刷新的时候消失。

首先,如果使用方案二 是可以在子路由获取到数据的。
对于页面刷新数据消失,原因是这样的,路由传递数据 那么什么是路由传递数据,是否可以理解,页面跳转的时候携带的数据。如果你已经在子页面了,你点击刷新,这个时候 并没有触发 你在父级页面定义的 this.$router.push()方法。所以为什么会有数据呢。

还有使用params 我的目的就是为了在url后面不会携带参数。所以我为什么要添加:/id 这样的写法呢。

所以 没有对错 只是需求的不同 难道不是么

对于 注意这里不能使用:/id来传递参数了,因为父组件中,已经使用params来携带参数了。 这句话确实有点武断。 已经修改

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

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

相关文章

Rust从入门到放弃(1)—— hello,world

安装及环境配置 特点&#xff1a;安全&#xff0c;性能&#xff0c;并发rust源配置RLS安装cargo rust管理工具&#xff0c;该工具可以愉快方便的管理rust工程 #!/bin/bash mkdir learn cd learn cargo init ## 该命令会在当前目录下初始化一个## 目录下会出现一个Cargo.toml文…

牛客33-tokitsukaze and Number Game(数论)

题目描述 tokitsukaze又在玩3ds上的小游戏了&#xff0c;现在她遇到了难关。 tokitsukaze得到了一个整数x&#xff0c;并被要求使用x的每一位上的数字重新排列&#xff0c;组成一个能被8整除的数&#xff0c;并且这个数尽可能大。 聪明的你们请帮帮可爱的tokitsukaze&#xff0…

手摸手,带你用vue撸后台 系列一(基础篇) - 掘金

完整项目地址&#xff1a;vue-element-admin 系列文章&#xff1a; 手摸手&#xff0c;带你用 vue 撸后台 系列一&#xff08;基础篇&#xff09;手摸手&#xff0c;带你用 vue 撸后台 系列二(登录权限篇)手摸手&#xff0c;带你用 vue 撸后台 系列三 (实战篇)手摸手&#xf…

21、python基础学习-new_three_menu

1 #!/usr/bin/env python2 #__author: hlc3 #date: 2019/5/294 5 menu {6 北京: {7 海淀: {8 五道口: {9 soho: {}, 10 网易: {}, 11 google: {} 12 }, 13 中关村: { 14 …

文献笔记(十六)

一、基本信息 标题&#xff1a;一种基于 C 语言访问 MySQL 数据库的研究 时间&#xff1a;2016 出版源&#xff1a;贵州轻工职业技术学院 领域分类&#xff1a;数据库与信息管理 作者&#xff1a;唐林 副教授&#xff0c; 研究方向&#xff1a; 计算机应用 二、研究背景 相关工…

webpack+vue+mui学习心得

引入mui 1.不需要npm安装; 直接从官方下载丢进来 2.那就是全局引用了; 没错,就是index.html里直接引入,当然也可以main.js引入,随意啦! so easy 3.找到webpack.base.conf.js,在module与plugins之间插入以下代码: 4.这样就可以在项目里面直接用了.然就是mui与vue-router及点…

[java设计模式简记] 观察者模式(Observer-Pattern)

观察者模式(Observer-Pattern) 数据主体拥有需要数据的对象的数据&#xff0c;并且数据改变时需要数据的对象要及时知道 意图&#xff1a; 定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。主要…

【ARTS】01_04_左耳听风-20181203~1209

ARTS&#xff1a; Algrothm: leetcode算法题目Review: 阅读并且点评一篇英文技术文章Tip/Techni: 学习一个技术技巧Share: 分享一篇有观点和思考的技术文章Algorithm Single Number https://leetcode.com/problems/single-number/ 1&#xff09;problem Given a non-empty arra…

vue项目(webpack+mintui),使用hbuilder打包app - 小小人儿大大梦想 - 博客园

一、配置config/index.js 本人没有配置index.js文件&#xff0c;就开始进行了打包&#xff0c;结果最终效果是页面空白&#xff0c;解决了空白&#xff0c;接着底部图标&#xff08;我是用的阿里巴巴图片&#xff09;资源找不到。所以配置这步比较重要。 &#xff08;1&#…

caffe介绍

转载于:https://www.cnblogs.com/Artimis-fightting/p/10945099.html

python-mysql 基础知识记录

cursor.fetchone() 与 cursor.fetchall() 如果查询结果为空&#xff0c;前者返回 None&#xff0c;后者返回[] 此时如用 len() 函数计算长度&#xff0c;前者报错&#xff0c;后者返回0 转载于:https://www.cnblogs.com/ZuoAn-xieyang/p/10097230.html

微服务之consul(一) - 诗码者 - 博客园

一、概述 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案&#xff0c;不再需要依赖其他工具&#xff08;比如ZooKeeper等&#xff09;。服务部署简单&#x…

C#动态加载dll,dll目录指定

<?xml version"1.0"?><configuration><startup> <supportedRuntime version"v4.0" sku".NETFramework,Versionv4.0"/></startup> <runtime> <assemblyBinding xmlns"urn:schemas-microsoft-com:a…

RestFramework之认证组件

一、认证组件的介绍 对于认证&#xff0c;我们一般有三种方式&#xff0c;即cookie, session,token, cookie,是将信息存放在客户端(浏览器上)&#xff0c;信息不安全&#xff1b;session,把信息放在服务器数据库中&#xff0c;但是要是信息量较大&#xff0c;对服务器的压力就会…

图解基于 Node.js 实现前后端分离 - CSDN博客

因为会上出了个意外&#xff0c;ppt图片全部丢失&#xff0c;只好对着白板跟大家交流了半个多小时。由于我做演讲不喜欢写太多的文字&#xff0c;没有图片的情况下讲漏了一些内容。这篇文章是我在会上分享内容对照ppt进行地整理。 基本介绍 首先从一个重要的概念“模板”说起…

java基础之XML

目录 java基础之XML1. XML解析概述2. DOM4J介绍2.1 常用包2.2 内置元素2.2 Element类2.3 Attribute类2.4 常用操作3. 代码演示3.1 DOM4J读取xml文件3.2 DOM4J创建xml文件3.2 DOM4J修改xml文件java基础之XML XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性…

CF176E Archaeology(set用法提示)

题目大意&#xff1a; 给一棵树&#xff0c;每次激活或熄灭一个点&#xff0c;每次问这些点都联通起来所需的最小总边权 分析&#xff1a; 若根据dfs序给所有点排序&#xff0c;为$v1,v2,v3....vk$&#xff0c;那么答案就是$(dis(v1,v2)dis(v2,v3)...dis(vk-1,vk)dis(vk,v1))/2…

网上整理的对于Rest和Restful api的理解 - 那啥快看 - 博客园

一、什么是Rest? REST不是"rest"这个单词&#xff0c;而是几个单词缩写 -- REpresentational State Transfer 直接翻译&#xff1a;表现层状态转移&#xff0c;但这个翻译正常人根本看不懂&#xff0c;找到的一种最好理解的说法是&#xff0c;URL定位资源&#xff…

P1101 单词方阵(DFS)

题目描述 给一n \times nnn的字母方阵&#xff0c;内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 88个方向的任一方向&#xff0c;同一单词摆放时不再改变方向&#xff0c;单词与单词之间可以交叉,因此有可能共用字母。输出时&#xff0c;…

企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)

一、简介 Rancher简介 来源官方&#xff1a;https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台。通过Rancher&#xff0c;企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部…