美文网首页
vue Router 路由组件传参

vue Router 路由组件传参

作者: 蜕变最美的你 | 来源:发表于2020-07-02 10:12 被阅读0次

主要目的为了解决不同路由在使用相同组件时高耦合,使用router中的props将路由和组件进行耦。
用法如下:

props 为布尔值
const User = {
  props: ['id'],
  template: '<div>User {{ id }}</div>'
}
const router = new VueRouter({
  routes: [
    { path: '/user/:id', 
      component: User, 
      props: true 
    },

    // 对于包含命名视图的路由,你必须分别为每个命名视图添加 `props` 选项:
    {
      path: '/name/:id',
      components: User,
      props: true
    }
  ]
})
// xxx/:id 中id可以在组件的props中进行获取并使用

tips:当props为true时路由传递的参数router.params 将被设置为组件的属性 。

props 为对象模式
const User = {
  props: ['newsletterPopup'],
  template: '<div>User {{ newsletterPopup }}</div>'
}
const router = new VueRouter({
  routes: [
    { path: '/user/:id', 
      component: User, 
      props: {newsletterPopup:'user'}
    },

    // 对于包含命名视图的路由,你必须分别为每个命名视图添加 `props` 选项:
    {
      path: '/name/:id',
      components: User,
      props: {newsletterPopup:'name'}
    }
  ]
})
// newsletterPopup可以在组件的props中进行获取并使用

tips:当props为对象时会被设置为组件的属性可以直接通过组件的props 进行获取。

props 为函数模式
const User = {
  props: ['newsletterPopup'],
  template: '<div>User {{ newsletterPopup }}</div>'
}
const router = new VueRouter({
  routes: [
    { path: '/user/:id', 
      component: User, 
      props: (route)=>({newsletterPopup:route.query.q})
    },

    // 对于包含命名视图的路由,你必须分别为每个命名视图添加 `props` 选项:
    {
      path: '/name/:id',
      components: User,
      props: (route)=>({newsletterPopup:route.query.q})
    }
  ]
})
// url: /xxx?q=test 会将 {newsletterPopup:test}传送给组件,组件的props中进行获取并使用

tips:你可以创建一个函数返回props。这样你便可以将参数转换成另一种类型,将静态值与基于路由的值结合等等

相关文章

  • 路由的传参

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

  • Vue-Router

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

  • 路由的传参 axios

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

  • vue Router 路由组件传参

    主要目的为了解决不同路由在使用相同组件时高耦合,使用router中的props将路由和组件进行耦。用法如下: pr...

  • Vue Router 路由组件传参

    在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵...

  • vue 路由的传参 vue中的ajax (axios)

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

  • Vue路由及默认路由的跳转

    https://router.vuejs.org/ 代码实现如下 Vue动态路由get传参 vue路由结合请求数据...

  • 简单遍历vue2.0文档(五)

    11. vue-router 11.1 引用 11.2 配置路由文件 11.3 路由的跳转 11.4 路由的传参 ...

  • Vue基础知识点整理

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

  • Vue-router 相关

    一、vue-router 如何传参 1、用name传递参数 步骤: (1)在路由文件src/router/in...

网友评论

      本文标题:vue Router 路由组件传参

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