美文网首页
vue router传参的三种方式

vue router传参的三种方式

作者: 还在努力的乌贼 | 来源:发表于2020-09-15 15:39 被阅读0次

先看看以下代码示例中的用到的路由表

{
  name: 'news',
  path: '/news',
  meta: { title: '新闻动态' },
  component: () => import('@/views/news')
},
{
  name: 'detail',
  path: '/detail/:id',
  meta: { title: '新闻详情' },
  component: () => import('@/views/detail')
}

我们实现路由的跳转有两种方法,声明式编程式,一般情况下用到编程式的方法来实现的情况会比较多,直接用router 的实例方法push()就能完成。
在 Vue 实例内部,可以通过$router访问路由实例。因此你可以调用 this.$router.push

一、params传参

$route.params 类型: Object。
一个 key/value 对象,包含了动态片段和全匹配片段,如果没有路由参数,就是一个空对象

this.$router.push({ name: 'news', params: { type: 1 }})

此时浏览器url上是看不到任何参数的,像这样http://localhost:9530/news
另外需要注意的是,params传参时如果刷新页面,参数是会丢失的

通过路由的名字的传参的话,必须使用路由对象的属性params

对于像path: '/detail/:id'这样的携带参数的动态路由,传参时也应当使用params,动态路由传参是可以再url上看到的,像这样http://localhost:9530/detail/121

二、query传参

***route.query*** 类型: Object 一个 key/value 对象,表示 URL 查询参数。例如,对于路径 `/foo?user=1`,则有route.query.user == 1,如果没有查询参数,则是个空对象。

const type = 1
this.$router.push({ path: 'news', query: { type: type  }})

此时浏览器url上是可以看得到参数的,像这样http://localhost:9530/news/?type=1
通过query传的参数在页面刷新时不会丢失。

前面说到的传参都是比较简单的键值对。如果要传一个内容比较多的对象应该怎么传?
可以先用JSON.stringfy()把参数格式化,传到页面之后再用JSON.pares()去解析
但是这个方法会让页面的url过于冗长很不美观,所以比较好的方式是,页面之间传对象的话用store

三、props传参

params和query这两种传参方式用的是比较多的,最近我在写项目的时候看到使用props去传参的。这里也记录一下
路由配置如下

{
  name: 'news',
  path: '/news',
  component: () => import('@/views/news'),
  meta: { title: '新闻详情' },
  props: { type: 1 }
}

通过props的方式传参时,在组件内的取值方式也是通过props,像父子组件传值那样

props: ['type']

取值时也像使用组件参数一样取值

this.type

路由传参的props形式还有以下几种写法
(1)props:true;
通过props设置为true,可以进行布尔传值,可以接受params的方法进行传递

(2)props:{ key1:60, key2:70 };
通过props为对象的方式进行处理静态数据,可使用对象模式,上面示例中用到的就是props的静态传参

(3)props:(route)=>( { key:route.query.key })
通过props为函数时进行传值,此时用的query方式进行参数的传递

相关文章

  • Vue基础知识点整理

    1、route和router区别,query和param区别,vue路由传参的方式 router为VueRoute...

  • vue路由传参

    原生JS 传参 Vue 传参 使用 传参数 第一种方法 第二种方法 点击事件传参 第三种...

  • vue-router

    1. vue-router query 和 params 传参 params 传参: 总结: 用params传参只...

  • Vue-Router

    1. 路由配置 默认路由跳转 在 new Router时可用的配置参数: 2.路由传参 Vue路由传参的几种方式 ...

  • vue-router总结

    1、通过 :to 传参 2、通过URL传参 router/index.js App.vue Hi.vue 重定向 ...

  • Vue路由传参两种方式

    在vue-router路由中,传参方式一般分两种: 一种是利用$route.query对象的Get方式传参,与ht...

  • Vue2.0实操经典文章整理

    Vue2.0 探索之路——vue-router入门教程和总结 Vue2.0的三种常用传值方式、父传子、子传父、非父...

  • vue路由传参

    Vue router如何传参 params、query是什么? params:/router1/:id ,/rou...

  • 路由的传参

    路由的传参 下载:npm install vue-router路由的传参:1.查询字符串:/user/regist...

  • 路由的传参 axios

    1,路由的传参:案例: 2,axios下载:npm install vue-router路由的传参:1.查询字符串...

网友评论

      本文标题:vue router传参的三种方式

      本文链接:https://www.haomeiwen.com/subject/bequdktx.html