首页 > 其他分享 >Vue进阶(幺叁捌):vue 路由传参的几种基本方式

Vue进阶(幺叁捌):vue 路由传参的几种基本方式

时间:2023-08-01 15:35:14浏览次数:40  
标签:传参 Vue 进阶 particulars params path query id name

(文章目录)

一、动态路由(页面刷新数据不丢失)

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

路由配置

{
     path: '/particulars/:id',
     name: 'particulars',
     component: particulars
   }

接收页面通过 this.$route.params.id 接收

二、路由 name 匹配,通过 params 传参

methods:{
  insurance(id) {
     this.$router.push({
        name: 'particulars',
        params: {
          id: id
        }
      })
  }

路由配置

 {
   path: '/particulars',
   name: 'particulars',
   component: particulars
 }

也是通过 this.$route.params.id 接收参数

三、路由 path 路径匹配,通过 query 传参

通过query来传递参数,这种情况下 query传递的参数会显示在url后面以?id=?形式展示。

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

路由配置

{
  path: '/particulars',
  name: 'particulars',
  component: particulars
}

通过 this.$route.query.id 接收参数

再次梳理下params传参和query传参的差别:

1. 用法上

刚才已经说了,query要用path来引入,params要用name来引入,接收参数都是类似的,分别是this.$route.query.namethis.$route.params.name

PS:注意接收参数的时候,已经是$route而不是$router

2. 展示上

query更加类似于ajaxget传参,params则类似于post,说的再简单一点,前者在浏览器地址栏中显示参数,后者则不显示。

四、拓展阅读

标签:传参,Vue,进阶,particulars,params,path,query,id,name
From: https://blog.51cto.com/shq5785/6922776

相关文章

  • vue项目中禁止移动端双击放大
    最近有时间做自己的事了,才想起来记录这些事其实可简单了一句话的事找到index.html的这个代码<metaname="viewport"content="width=device-width,initial-scale=1.0">把他替换成这个,就好了<metaname="viewport"content="width=device-width,initial-scale=1.0,ma......
  • Vue CLI 安装
    安装这个新的包:npminstall-g@vue/cli 你还可以用这个命令来检查其版本是否正确:vue--version 启动界面vueui......
  • Vue常用经典开源项目汇总参考-海量
    Vue常用经典开源项目汇总参考-海量是什么?(读音 /vjuː/, 类似于 view)是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采......
  • 前端Vue自定义精美商品分类组件category 可用于电商应用分类页面
    随着技术的不断发展,传统的开发方式使得系统的复杂度越来越高。在传统开发过程中,一个小小的改动或者一个小功能的增加可能会导致整体逻辑的修改,造成牵一发而动全身的情况。为了解决这个问题,我们采用了组件化的开发模式。通过组件化开发,可以有效地实现单独开发,单独维护,而且它们之间......
  • vue-element store undefined
    使用vue-element-admin时,想在项目打包后,也能通过修改配置文件来更改接口地址等信息然后搜索得知,可以在public中写一个config.jswindow.myconfig={systemName:'信息管理系统',requestUrl:'http://118.xx.xx.77:8000/admin/',}然后在index.html中引入<scripttype="tex......
  • 智慧校园源码:vue2+Java+springboot+MySQL+elmentui+jpa+jwt
    智慧校园综合管理云平台源码系统主要以校园安全、智慧校园综合管理云平台为核心,以智慧班牌为学生智慧之窗,以移动管理平台、家校沟通为辅。教师—家长一学校—学生循环的无纸化管理模式及教学服务,实现多领域的信息互联互通以及校园管理一体化、信息数据化、数据自动化。智慧班牌融合......
  • vue + ele 下拉选择框和下拉多选选择框处理
    效果图如下: <!--添加项目的弹框--><el-dialogv-model="addDlg"class="pro_dialog"title="添加项目"width="40%"> <el-form:model="addForm"> <el-form-itemlabel="项目名"><el-inputv-......
  • vue 使用 eruda(移动端H5调试工具)
    <scriptsrc="https://cdn.bootcdn.net/ajax/libs/eruda/2.3.3/eruda.min.js"></script><script>eruda.init()</script> ......
  • 【动画进阶】有意思的 Emoji 3D 表情切换效果
    最近,群里面的同学发了这么一个非常有意思是动画效果:原效果地址--CodePenDemo--LetterHop当然,原效果,主要使用了GSAP动画库以及一个3D文字JavaScript库:import{Those3DTexts}from"https://cdn.skypack.dev/that-3d-text-library";import{gsap}from"https:......
  • vue中使用provide和inject依赖注入组件之间进行父子组件传值(也适用于嵌套路由)
      父组件中:provide:function(){return{reload:this.reload//父组件中的方法}}子组件中:inject:['reload']使用:this.reload()//也可传入参数......