当前位置: 首页 > news >正文

(四十四)Vue Router的命名路由和路由组件传参

文章目录

  • 命名路由
  • 组件传参
    • query参数方式
      • 参数传递
      • 参数接收
    • params参数方式
      • 参数传递
      • 参数接收
    • props配置方式
      • 布尔值形式
      • 对象模式
      • 函数模式

上一篇:(四十三)Vue Router之嵌套路由

命名路由

命名路由是为路由配置项提供一个名称,以便在代码中引用该路由。通过为路由配置项添加name属性,可以为路由指定一个唯一的名称。

配置:

const router = new VueRouter({routes: [{path: '/path1',name: 'name2', // 命名路由为 'name1'component: Component1,},{path: '/path2',name: 'name2', // 命名路由为 'name2'component: Component2,},],
});

使用:

<router-link :to="{name:'name1'}"></router-link>
<router-link :to="{name:'name2'}"></router-link>

组件传参

query参数方式

参数传递

  • 字符串写法
<router-link :to="`/xxx?param1=${param1}&param2=${param2}`">query跳转携带参数
</router-link>
  • 对象写法
<router-link :to="{path:'/xxx',query:{param1:param1,param2:param2}}">query跳转携带参数
</router-link>

参数接收

   $route.query.id$route.query.title

params参数方式

参数传递

  • 占位符形式
const router = new VueRouter({routes: [{path: '/xxx/:param1/:param2',component: Component,},],
});
<router-link :to="`/xxx/${param1}/${param2}`">params跳转携带参数
</router-link>
  • 对象写法
<router-link :to="{name:'detail',params:{param1:param1,param2:param2}}">params跳转携带参数
</router-link>

特别注意:路由携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!

参数接收

   $route.params.id$route.params.title

props配置方式

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

使用 props 将组件和路由解耦,props配置将会把参数以props的方式传递到目标组件,该配置属性可以是布尔值、对象或函数

布尔值形式

如果 props 被设置为 true,把路由组件收到的所有params参数,以props传递过来。

const router = new VueRouter({routes: [{path: '/path1',props: true, // 把路由组件收到的所有params参数,以props传给Component组件。component: Component,},],
});

对象模式

props对象写法,对象中所有的数据都以props传递过来。

const router = new VueRouter({routes: [{path: '/path1',props: {param1:param1,param2:param2},component: Component,},],
});

函数模式

props函数写法,该函数返回的对象中每一组数据都会通过props传递过来,可以配合query和params使用

const router = new VueRouter({routes: [{path: '/path1',props($route){return {param1:$route.query.param1,param2:$route.params.param2}}component: Component,},],
});
http://www.lryc.cn/news/382698.html

相关文章:

  • EXCEL表格怎么批量删除日期后的时间?
  • 乌班图Ubuntu 24.04 SSH Server 修改默认端口重启无效
  • QT MQTT (二)编译与集成
  • (上位机APP开发)调用华为云属性修改API接口修改设备属性
  • 爆火的儿童绘本如何用AI制作?一文解锁从制作到变现的全流程!
  • Go interface{}类型转换
  • 利用opencv自带的Haar级联分类器模型
  • 国产USB音频转换芯片CL7016C 支持国美标线控USB Type-C音频编解码器
  • 【linux网络(六)】IP协议详解
  • CesiumJS【Basic】- #012添加点线面(entity方式)
  • 【Redis】内存回收和内存淘汰机制
  • PyTorch实战:借助torchviz可视化计算图与梯度传递
  • 【软件测试】软件测试入门
  • Windows操作防火墙命令
  • 二维数组的知识
  • HR3.0时代,人力资本效能如何进化?| 易搭云DHR
  • R语言做图
  • 跟着我一步两步三步,用开源方式将AI带入企业
  • 天途重磅推出无人机教管平台3.1版及飞课APP
  • 虚幻引擎 Gerstner Waves -GPU Gems 从物理模型中实现有效的水体模拟
  • Labview_网络流
  • 让生产管理变简单
  • MySQL与SQLite的区别
  • Hi3861 OpenHarmony嵌入式应用入门--LiteOS Event
  • Centos+Jenkins+Maven+Git 将生成的JAR部署到Jenkins服务器上
  • 性能评测系列(PT-010):Spring Boot + MySQL,高并发insert
  • 网站改成HTTPS方法
  • 智慧社区:居民幸福生活的保底线,价值非常大。
  • 《昇思25天学习打卡营第1天|NapKinG》
  • Java项目毕业设计:基于springboot+vue的幼儿园管理系统