vue 通过路由在进行页面跳转时,会经常携带参数用于同步页面间的数据

路由中携带参数的方式总结如下:

路由定义示例:

 {
name: 'list',
path: '/list',
component: List
}

1. 通过query携带

  代码示例如下:

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

  携带的参数会在地址栏中展示

  query可携带任意类型参数,如下:

      me.$router.push({
path: '/list',
query: {
name: '张三',
info: {
age: 12,
sex: 1,
classList: ['英语', '数学', '历史']
},
classList: ['英语', '数学', '历史'],
isTrue: false,
nums: 12,
func: function () {
console.log('======>>>>>>')
}
}
})

  获取参数的方式

 this.$route.query

  该方式的弊端在于,在页面间跳转可正常使用,如info、isTrue、func,但是在进行页面刷新时,所有参数值会转化为字符串,如对象info会转化为字符串'[Object Object]',布尔值isTrue会转化为'false',从而导致使用错误

2. 通过params携带参数

  params也可以携带任何任意类型的数据,在页面间跳转时,参数在地址栏不可见,可通过

 this.$route.params

方式获取,页面刷新后参数消失

3. 在路由中定义参数

  方式如下:

 {
path: '/detail/:id/:info/:isTrue/:classList',
name: 'detail',
component: Detail
}

参数会被全部转化为字符串,在地址栏中可见,可通过

1 this.$route.params

方式获取,页面刷新后参数不会消失

综上所述:

  在路由中虽然可以传递多种类型的参数,但是在页面刷新后会出现类型错误,所以在页面间传递数据时,尽量选择使用字符串进行传递

  

VUE路由携带参数的三种方式的更多相关文章

  1. vue路由传参的三种方式以及解决vue路由传参页面刷新参数丢失问题

    最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$r ...

  2. vue路由传参的三种方式区别(params,query)

    最近在做一个项目涉及到列表到详情页的参数的传递,网上搜索一下路由传参,结合自己的写法找到一种适合自己的,不过也对三种写法都有了了解,在此记录一下 <ul class="table_in ...

  3. vue路由传参的三种方式

    方式一 通过query方式传参 这种情况下 query传递的参数会显示在url后面 this.$router.push({ path: '/detail', query: { id: id } }) ...

  4. vue中通过路由跳转的三种方式

    原文:https://blog.csdn.net/qq_40072782/article/details/82533477 router-view 实现路由内容的地方,引入组件时写到需要引入的地方需要 ...

  5. vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式

    不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...

  6. Vue路由传参的几种方式

    原 Vue路由传参的几种方式 2018年07月28日 23:52:40 广积粮缓称王 阅读数 12613   前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式 ...

  7. 命令行运行Python脚本时传入参数的三种方式

    原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...

  8. React中使用 react-router-dom 路由传参的三种方式详解【含V5.x、V6.x】!!!

    路由传值的三种方式(v5.x) params参数 //路由链接(携带参数): <Link to='/demo/test/tom/18'}>详情</Link> //或 <L ...

  9. ssh框架总结之action接收参数的三种方式

    页面将参数传递给action的三种方式 一是通过属性传值: 将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set ...

随机推荐

  1. C++中:(*p)++和*(p++)和*p++的区别

    1. 理解自增自减运算符      (1)后置自增自减运算符优先级>前置自增自减运算符. (2)前置自增自减运算符“变量先自增自减再使用”. (3)后置自增自减运算符“变量先使用再自增自减”. ...

  2. Java 优化要点

    java优化四个要素:1.-server服务器方式启动2.-Xms1g -Xmx1g初始大小与最大大小保持一致 -Xss256k线程栈从默认128扩到256  3.-Xmn512m新生代内存:年老代内 ...

  3. Delegate & Event

    Long time without coding,貌似对programming都失去了曾有的一点点sense了,今日有空再细瞄一下.net的委托和事件. Delegate 首先,委托用于引用一类具有相 ...

  4. element-ui(或者说Vue的子组件)绑定的方法中传入自定义参数

    比如el-upload中的 :on-success= fn,其实是给组件el-upload传递一个prop,这样写的话fn只能接受upload组件规定的参数,如果想自己传递父组件中的参数比如b,要写成 ...

  5. Python 函数的描述

    函数 函数是带名字的代码块,用于完成具体的工作. 要执行函数定义的特定任务,可调用该函数.需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运 ...

  6. better-scroll

    better-scroll会将默认事件阻止掉,如果自己写的部分需要有点击事件,需要在参数里加上click:true. 同时,在PC上或某些手机端,由于未成功将touchend事件move掉,点击事件会 ...

  7. 后台List里的数据传到前台表格和下拉列表为什么不显示

    传到前台表格和下拉列表我是用<c:forEach做的,百度了很久,仔仔细细对我的代码没有问题,那么到底是为什么不显示呢?! 找了很久啊,最后发现是我没有引入jstl的标签库!居然是因为这个…… ...

  8. Delphi Redis Client

    https://github.com/danieleteti/delphiredisclient

  9. 命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用

    在学习廖老师的Python教程的时候,遇到命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用的情况, 这种情况可能是由于在本地安装了多个Python版本的缘故(只是可能的情况之一 ...

  10. Tiny6410 裸机开发--裸机点亮LED

    环境搭建 由于我不喜欢使用虚拟机,双系统无法同时烧程序.最近才折腾好Windows10下编译和下载程序,使用的是韦东山做的easy open jtag,资料十分齐全,之前使用jlink搭建环境碰到了一 ...