在页面跳转中,我通过路由传参,结果发现页面参数丢失了。路径返回了根目录。。。。

1. 先说下路由传参的几种方式吧?

比如:<div v-for="item in items" @click="get(item.id)">

传参方式1:

         1) get:function(id){
this.$router.push({
path: `/describe/${id}`,
})
} 2) 相应路由配置:{
path: '/describe/:id',
name: 'Describe',
component: Describe
} 3) 子组件取 this.$route.params.id ;

传参方式2:

          1)父组件通过name来匹配
this.$router.push({
name: 'Describe',
params: {
id: id
}
}) 2)相应路由配置:
{
path: '/describe/:id',
name: 'Describe',
component: Describe
}
3)子组件是通过:
this.$route.params.id

注意:此方式2有一个小坑,以前用params 时感觉很方便,就用了方式2。

      坑一:子组件第一次没有获取到值,原来我是用path路径,而没有用name。我把它改掉了。
坑二:改掉后发现刷新参数不见了。。。。。。。。。。。根据网上大神的建议,再路由配置中加了path: '/describe/:id', 相当于混合了第一种方式; 但是。。。。。。。。
坑三:由于根路径是登陆页,每次返回,并不是返回上一页,而是直接返回了根路径登陆页(我在路由配置中加了好多参数,导致describe丢失),这就有点烦了,本来你把主页设为 /也可以,但是并不是我一开始想要的结果, 哈哈。。。方案三解决了上述所有的问题;

传参方式3:

     父组件:this.$router.push({
path: '/describe',
query: {
id: id
}
}) 路由设置:
{
path: '/describe',
name: 'Describe',
component: Describe
} 子组件获取: this. $route.query.id

注意所有的子组件获取是$route,而不是$router ,哈哈,很开心完美解决了路由传参

vue 路由传参中刷新页面参数丢失 及传参的几种方式?的更多相关文章

  1. vue-router 路由传参的几种方式,刷新页面参数丢失

    常见场景:点击列表详情,跳转到详情内页,传递id参数获取详情数据. 我们先来看看路由跳转的几种方式: 1.通过params方式传参 通过$route.push的path携带参数方式 // 路由配置 { ...

  2. mixin 在传参中可以出现 参数 在类内部可以定义 作用域

    mixin 在传参中可以出现 参数  在类内部可以定义

  3. Vue build打包之后,刷新页面出现404解决方案

    Vue build打包之后,刷新页面出现404,HTML5 History 模式 原因分析: vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于 ...

  4. 【整理】iview中刷新页面的时候更新导航菜单的active-name

    iview中刷新页面的时候更新导航菜单的active-name https://blog.csdn.net/lhjuejiang/article/details/83212070

  5. Struts2中Action接收参数的方法主要有以下三种:

    Struts2中Action接收参数的方法主要有以下三种: 1.使用Action的属性接收参数(最原始的方式):     a.定义:在Action类中定义属性,创建get和set方法:     b.接 ...

  6. PHP 使用数字作为SESSION的Key,一刷新页面session丢失,Session消失,无法存储

    PHP 使用数字作为SESSION的Key,一刷新页面session丢失,Session消失,无法存储 项目中有用到md5截取做session key值的,有些md5截取出来的部分是纯数字的,导致部分 ...

  7. Android中WebView的JavaScript代码和本地代码交互的三种方式

    一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...

  8. 在单文件组件中,引入安装模块里的css的2种方式:script中引入、style中引入

    在单文件组件中,引入安装模块里的css的2种方式:script中引入.style中引入 1.script中引入 <script> import 'bulma/css/bulma.css' ...

  9. Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比

    Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比   上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...

随机推荐

  1. linux 下安装与使用

    一 安装 ## 先用wget下载源文件 wget http://download.redis.io/releases/redis-3.2.9.tar.gz ## 我自己建个文件夹 mkdir /usr ...

  2. Oracle日志查看

    一.Oracle日志的路径: 登录:sqlplus "/as sysdba" 查看路径:SQL> select * from v$logfile; SQL> selec ...

  3. 给Laravel4添加中文语系(转)

    Laravel 4 官方不附带英文以外的 validataion 错误信息翻译. 今天发现GitHub 上有一个 repository 收集不同的翻译,大家可以下载需要的翻译. GitHub项目地址: ...

  4. Python之小测试:用正则表达式写一个小爬虫用于保存贴吧里的所有图片

    很简单的两步: 1.获取网页源代码 2.利用正则表达式提取出图片地址 3.下载 #!/usr/bin/python #coding=utf8 import re # 正则表达式 import urll ...

  5. 当vue页面异步加载的数据想在页面上渲染怎么办

    <template> <div class="test"> <div v-for="(item, index) in arr" : ...

  6. JS window对象 Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL。 语法: location.[属性|方法]

    Location对象 location用于获取或设置窗体的URL,并且可以用于解析URL. 语法: location.[属性|方法] location对象属性图示: location 对象属性: lo ...

  7. 【CSS】input 框的一些事情

    1.input框光标太长与不居中的问题 如果input框height:40px 为了字体垂直居中line-height也设为40px 问题来了,这样光标在刚刚focus时候是占据整个input框并且输 ...

  8. 【leetcode】953. Verifying an Alien Dictionary

    题目如下: In an alien language, surprisingly they also use english lowercase letters, but possibly in a ...

  9. HTML5 原生API input file 来实现多图上传,并大图预览

    闲来无事,突然想用原生来实现图片的多图上传. 一.效果图大致如下: 1.上传时可以选择多图 2.上传之后缩略图下过图如下: 3.点击缩略图,大图展示当前所点击的图片,并可以左右滑动查看其它的缩略图对应 ...

  10. leetcode-163周赛-1261-在污染的二叉树中查找元素

    题目描述: 方法一: class FindElements: def __init__(self, root: TreeNode): self.d = set() def f(r, x): if r: ...