• VUE路由传参的实用方式


    本文讲解了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中配置路由地址,页面跳转后刷新也不会丢失参数。

  • 相关阅读:
    SpringCLoud——Nacos注册中心
    【JavaScript】一文了解JS的闭包
    鸿蒙系统(HarmonyOS)--第一章
    Mac下使用Homebrew安装MySQL5.7
    中国大模型语料数据联盟迎来9家新成员,开源第二批语料数据
    2022年12月 C/C++(六级)真题解析#中国电子学会#全国青少年软件编程等级考试
    pycharm没有setuptools包、wheel包的解决措施(pycharm添加包的两种方式)
    利用java语言将csv格式数据导入mysql数据库
    基于nodejs+vue驾校预约管理系统
    Greenplum-表的分布策略
  • 原文地址:https://www.cnblogs.com/hellocampo/p/17464445.html