企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
# 2、路由组件传递参数 # 4.2路由组件传递参数 $route与对应路由形成高度耦合,不够灵活,所以可以使用props将组件和路由解耦 ## 1\. props的值为布尔类型 ~~~ const router = new VueRouter ( { routes :[ //如果props 被设置为true, route. params 将会被设置为组件属性 { path: ' /user/: id',component: User, props: true } ] }) const User = { props: ['id'], // 使用props 接收路由参数 template : '<div>用户id: {{ id }}</div>' // 使用路由参数 } ~~~ ![](https://img.kancloud.cn/74/70/7470ce1947c9cdfae5233a29693cf58d_652x396.png) ## 2\. props的值为对象类型 ~~~ const router = new VueRouter ({ routes :[ //如果props是一个对象,它会被按原样设置为组件属性 { path: ' /user/: id',component: User, props: { uname: 'lisi',age: 12 } } ] }) const User = { props: [ 'uname', ' age'], template: *<div>用户信息: { { uname + '---' + age} }</div> ' } ~~~ ![](https://img.kancloud.cn/04/d6/04d6960340020b84023ed71c23113ce4_579x283.png) ## 3\. props的值为函数类型 ~~~ const router = new VueRouter ({ routes: [ //如果props 是一个函数,则这个函数接收route 对象为自己的形参 { path: ' /user/:id', component :User, props: route => ({ uname: 'zs', age: 20,id: route .params. id }) } ] }) const User = { props: ['uname', 'age', 'id'], template: '<div>用户信息: { { uname + '---' + age + '---' + id} }</div> ' } ~~~ ![](https://img.kancloud.cn/11/b4/11b4d16362b408ee9aac622e11cde7d0_577x284.png)