Vue - 路由组件传参(props配置)

作用:让路由组件更方便的收到参数

布尔模式#

props值为布尔值,布尔值为true,则把路由收到的所有params参数通过props传给Info组件

const routes = [
  {
    path: '/about',
    name: 'About',
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
    children:[
      {
        path:'person',
        name:'Person',
        component: () => import('../views/Person'),
        children:[
          {
            name:'Info',
            path:'info',
            component: () => import('../views/Info'),
            props:true,
          }
        ]
      }
    ]
  }
]

对象模式#

props值为对象,该对象中所有的key-value的组合最终都会通过props传给Info组件

const routes = [
  {
    path: '/about',
    name: 'About',
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
    children:[
      {
        path:'person',
        name:'Person',
        component: () => import('../views/Person'),
        children:[
          {
            name:'Info',
            path:'info',
            component: () => import('../views/Info'),
            props:{name:'张三',age:18},
          }
        ]
      }
    ]
  }
]

函数模式#

props值为函数,该函数返回的对象中每一组key-value都会通过props传给Info组件

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    // route level code-splitting
    // this generates a separate chunk (about.[hash].js) for this route
    // which is lazy-loaded when the route is visited.
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
    children:[
      {
        path:'person',
        name:'Person',
        component: () => import('../views/Person'),
        children:[
          {
            name:'Info',
            path:'info',
            component: () => import('../views/Info'),
            props(route){
              return {
                name:route.query.name,
                age:route.query.age
              }
            },
          }
        ]
      }
    ]
  }
]

接收参数#

<template>
  <div>
    <p>姓名:{{name}}</p>
    <p>年龄:{{age}}</p>
  </div>
</template>

<script>
export default {
  name: "Info",
  props:['name','age']
}
</script>

posted @   IamHzc  阅读(1078)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示
主题色彩