本文讲解了VUE项目中路由之间的传值方式,涉及到的方法都是开发时常用的,希望对大家有多帮助。

1. 方式一:使用router-link标签

1.1 params 传参

  • 首先定义好路由

    const routes = [
    { path : ‘/home’ , component : () => import(‘/../views/home.vue’) } ,
    { path : ‘/about/:id’ , name : ’about’ , component: () => import(‘/../views/about.vue’) }
    ]
  • 在需要跳转的home组件中使用 router-link 标签
    <router-link :to=”{ name : ’about’ , params : { id : 1} }”>跳转</router-link>
  • 在跳转到的about组件中拿到传过来的值
    this.$route.params.id

小结:params传参类似post,路由配置可以为 path : '/about/ : id’或  path : '/about : id’。

注意:如果不配置path的路由地址 :id ,那么第一次发起请求时可以拿到传过来的值,但是刷新之后id会消失;配置了path后刷新页面id会保留。

1.2 query传参

  • 首先定义好路由

    const routes = [
    { path : ‘/home’ , component : () => import(‘/../views/home.vue’) } ,
    { path : ‘/about’ , name : ’about’ , component: () => import(‘/../views/about.vue’) }
    ]
  • 在需要跳转的home组件中使用 router-link 标签
    <router-link :to=”{ name : ’about’ , query: { id : 1} }”>跳转</router-link>
  • 在跳转到的about组件中拿到传过来的值
    this.$route.query.id

小结:query传参类似于get,在url末尾会显示传过来的参数,路由地址可不配置。

注意:如果是html取参,用$route.query.id;如果是script取参,用this.$route.query.id。

总结:如果使用params传参,要在path中配置好路由地址,不然页面刷新后传过来的参数会丢失;如果使用query传参,则无需再path中配置路由地址,页面跳转后刷新也不会丢失参数。

2. 方式二:使用button按钮和点击时间@click

2.1 params 传参

  • 首先定义好路由

    const routes = [
    { path : ‘/home’ , component : () => import(‘/../views/home.vue’) } ,
    { path : ‘/about/:id’ , name : ’about’ , component: () => import(‘/../views/about.vue’) }
    ]
  • 在需要跳转的home组件中添加一个button按钮,并增加点击事件

    <button @click=”change”>跳转</button>
  • 在change方法中使用this.$router.push进行页面跳转

    change(){
    this.$router.push({
    name : “about” ,
    params : {id : 1}
    })
    }
  • 在about组件中拿到传过来的值

    this.$route.params.id 

小结:和使用router-link标签类似,使用params就类似于post方法,需要配置好路由地址:id,才不会在刷新页面后丢失数据。

2.2 query传参

  • 首先定义好路由

    const routes = [
    { path : ‘/home’ , component : () => import(‘/../views/home.vue’) } ,
    { path : ‘/about’ , name : ’about’ , component: () => import(‘/../views/about.vue’) }
    ]
  • 在需要跳转的home组件中添加一个button按钮,并增加点击事件

    <button @click=”change”>跳转</button>
  • 在change方法中使用this.$router.push进行页面跳转

    change(){
    this.$router.push({
    name : “about” ,
    query: {id : 1}
    })
    }

    或者:

    change(){
    this.$router.push({
    path: “/about” ,
    query: {id : 1}
    })
    }
  • 在about组件中拿到传过来的值

    this.$route.query.id

小结:和使用router-link标签类似,使用query就类似于get方法,不需要配置好路由地址:id,刷新页面后数据也不会丢失。

总结:如果使用params传参,要在path中配置好路由地址,不然页面刷新后传过来的参数会丢失;如果使用query传参,则无需再path中配置路由地址,页面跳转后刷新也不会丢失参数。

VUE路由传参的实用方式的更多相关文章

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

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

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

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

  3. vue路由传参的几种基本方式

    原文地址 this.$router.push跳转 现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据.父组件中: <li v-for="article i ...

  4. vue 路由传参中刷新页面参数丢失 及传参的几种方式?

    在页面跳转中,我通过路由传参,结果发现页面参数丢失了.路径返回了根目录.... 1. 先说下路由传参的几种方式吧? 比如:<div v-for="item in items" ...

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

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

  6. vue路由传参并跳转页面

    在vue项目中参数的传递可以使用本地缓存或者Vuex,那么vue能不能像小程序一样路由传参呢,显然是可以的而且非常简单 方式一:query传参 //传参 go(){ that.$router.push ...

  7. vue路由传参页面刷新参数丢失问题解决方案

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

  8. vue路由传参及组件传参和组件方法调用

    VUE路由和组件传参 第一种vue自带的路由传参的三种基本方式 1.通过name :id传参 子组件通过$route.name接收参数 { path: '/particulars/:id', name ...

  9. vue 路由传参

      mode:路由的形式 用的哪种路由 1.hash 路由 会带#号的哈希值 默认是hash路由   2.history路由 不会带#的     单页面开发首屏加载慢怎么解决?单页面开发首屏加载白屏怎 ...

  10. vue路由传参刷新丢失

    没有系统学习过vue,以前使用路由传参都是直接this.$router.push({name:'main',params:{'id': 123}})的,没有在路由定义中配置参数,如下: router: ...

随机推荐

  1. jwt 学习笔记

    概述 JWT,Java Web Token,通过 JSON 形式作为 Web 应用中的令牌,用于在各方之间安全地将信息作为 JSON 对象传输,在数据传输过程中还可以完成数据加密.签名等相关处理 JW ...

  2. GO实现Redis:GO实现Redis的AOF持久化(4)

    将用户发来的指令以RESP协议的形式存储在本地的AOF文件,重启Redis后执行此文件恢复数据 https://github.com/csgopher/go-redis 本文涉及以下文件: redis ...

  3. Flask快速入门day 01(flask介绍、快速使用、配置文件、路由系统)

    目录 Flask框架 前言: 一.flask介绍 1.介绍 2.使用两种协议编写web 二.flask快速使用 1.快速使用: 2.使用flask编写登录小案例 2.1 login.html 2.2 ...

  4. 部署kubernetes官网博客

    部署kubernetes官网博客 访问 https://kubernetes.io/ 有些时候不问题,部署离线内网使用官网以及博客, 各位尝鲜可以访问 https://doc.oiox.cn/ 安装d ...

  5. Spring注解系列——@PropertySource

    在Spring框架中@PropertySource注解是非常常用的一个注解,其主要作用是将外部化配置解析成key-value键值对"存入"Spring容器的Environment环 ...

  6. 数据泵:impdp导入用户ORA-01653

    ,问题描述:在导入一个用户数据的时候,大小为14G左右,导进来的时候卡半天,后来发现是表空间满了,已经恢复了大概6G左右,剩下8G左右没有恢复.此时磁盘剩余19G,加了15G的表空间,磁盘就剩下4G左 ...

  7. 开心档之MySQL 序列使用

      MySQL 序列使用 MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将 ...

  8. extend笔记

    JavaScript面向对象 继承extend 1. 概念(主要用途) 将子类中的共性代码 ( 属性和方法 ) 抽取出来 放到父类中 每当有一个新的子类需要用到共性的属性或者方法时 不需要在自己内容复 ...

  9. Claude:除ChatGPT外的另一种选择

    前言 Claude 是 Anthropic 开发的人工智能产品.Anthropic 是由 11 名前 OpenAI 员工于 2022 年创立的人工智能公司,旨在构建安全.可解释和有益于人类的人工智能系 ...

  10. 沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置

    目录 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟 沁恒 CH32V208 ...