通过不同方式在 Vue 3 中传递路由参数

如何通过不同方式在 Vue 3 中传递路由参数,并在组件中使用 defineProps 或其他组合式 API 获取这些参数?

1. 通过 path 参数传递

最常见的方式,通过在路由路径中定义动态参数,并在路由配置中设置 props: true,将参数作为 props 传递给组件。

路由配置
{path: '/:projectId(\\d+)/report/calc/:reportId(\\d+)',name: 'CreateCalcPage',component: () => import('@/pages/report/calc.vue'),props: true, // 通过 props 传递路由参数
}
组件中使用 defineProps
<template><div><p>Project ID: {{ projectId }}</p><p>Report ID: {{ reportId }}</p></div>
</template><script setup>
import { defineProps } from 'vue';const props = defineProps({projectId: {type: String,required: true,},reportId: {type: String,required: true,},
});
</script>

2. 通过 query 参数传递

可以通过 query 参数传递数据。在这种情况下,需要手动从 route 对象中获取参数。

路由跳转
router.push({name: 'CreateCalcPage',query: {projectId: '123',reportId: '456',},
});
组件中使用 useRoute
<template><div><p>Project ID: {{ projectId }}</p><p>Report ID: {{ reportId }}</p></div>
</template><script setup>
import { useRoute } from 'vue-router';const route = useRoute();
const projectId = route.query.projectId;
const reportId = route.query.reportId;
</script>

3. 通过 props 选项传递

可以在路由配置中使用 props 选项来传递静态或动态参数。

静态参数
{path: '/report/calc',name: 'CreateCalcPage',component: () => import('@/pages/report/calc.vue'),props: { projectId: '123', reportId: '456' },
}
动态参数
{path: '/report/calc',name: 'CreateCalcPage',component: () => import('@/pages/report/calc.vue'),props: route => ({ projectId: route.query.projectId, reportId: route.query.reportId }),
}
组件中使用 defineProps
<template><div><p>Project ID: {{ projectId }}</p><p>Report ID: {{ reportId }}</p></div>
</template><script setup>
import { defineProps } from 'vue';const props = defineProps({projectId: {type: String,required: true,},reportId: {type: String,required: true,},
});
</script>

总结

  • 通过 path 参数传递:在路由路径中定义动态参数,并使用 props: true 将其作为 props 传递。
  • 通过 query 参数传递:在路由跳转时通过 query 参数传递数据,并在组件中使用 useRoute 获取。
  • 通过 props 选项传递:在路由配置中使用 props 选项传递静态或动态参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

S5730举例

校园网络拓扑和设备 大学校园网络通常使用多层级结构&#xff0c;核心是承载所有交换机的中心点&#xff0c;而分支则连接到核心以支持更广泛的网络覆盖。华为的S5730交换机通常用于大型企业和校园网络中&#xff0c;提供高性能和可靠性。 STP (Spanning Tree Protocol) 作用&…

事务、函数和索引

目录 什么是事务&#xff1f; 事务的ACID原则&#xff1a; 事务的操作 事务的原子性、一致性、持久性 事务的隔离性 什么是事务的隔离性? 用什么方法实现事务的隔离性&#xff1f; MySQL中的锁 锁分类&#xff1a; 事务的隔离级别 事务并发问题 InnoDB的MVCC MVCC…

【C++】红黑树的应用(封装map和set)

✨ 青山一道同云雨&#xff0c;明月何曾是两乡 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;C学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &…

Unity UGUI 实战学习笔记(3)

仅作学习&#xff0c;不做任何商业用途 不是源码&#xff0c;不是源码! 是我通过"照虎画猫"写的&#xff0c;可能有些小修改 不提供素材&#xff0c;所以应该不算是盗版资源&#xff0c;侵权删 拼UI 提示面板的逻辑 using System.Collections; using System.Col…

大数据——Hive原理

摘要 Apache Hive 是一个基于 Hadoop 分布式文件系统 (HDFS) 的数据仓库软件项目&#xff0c;专为存储和处理大规模数据集而设计。它提供类似 SQL 的查询语言 HiveQL&#xff0c;使用户能够轻松编写复杂的查询和分析任务&#xff0c;而无需深入了解 Hadoop 的底层实现。 Hive…

Firefox扩展程序和Java程序通信

实现Firefox扩展程序&#xff0c;和Java RMI Client端进行通信。 在Firefox工具栏注册按钮&#xff0c;点击按钮后弹出Popup.html页面&#xff0c;引用Popup.js脚本&#xff0c;通过脚本向Java RMI client发送消息&#xff0c;Java RMI Client接收消息后转发到Java RMI Server…

python写的登陆邮箱 接收邮件

import time from datetime import datetime, timedelta from mail import get_mails, server_login from notion import sync_bills from data_handler import alipay_data, wechat_data server server_login() if server ! -1: print(“尝试获取邮件”) waiting_time da…

大模型-鲁棒性总结-2024-7-28

文章目录 1.大语言模型的鲁棒性概述2.自然噪声的鲁棒性2.1.真实标签任务的性能2.2.开放式任务的表现 3.评估分布外&#xff08;OOD&#xff09;任务的弹性3.1.OOD检测3.2.OOD泛化 4.对抗鲁棒性5.提示的分布假设6.幻觉检测7.遗忘鲁棒性技术评估8.数学推理任务中的鲁棒性评估9.代…

MyBatis的入门操作--打印日志和增删改查(单表静态)

下面介绍注解和xml实现crud的操作 目录 一、日志打印和参数传递 1.1.使用mybatis打印日志 1.2.参数传递细节 二、crud&#xff08;注解实现&#xff09; 2.1.增(insert) 2.2.删(delete) 和 (update) 2.3.查(select) 三、crud&#xff08;xml实现&#xff09; 3.1.准备…

【算法】浅析遗传算法【附完整示例】

遗传算法&#xff1a;模拟自然选择&#xff0c;优化问题求解 1. 引言 在计算机科学和优化问题求解中&#xff0c;遗传算法是一种借鉴生物进化理论的启发式搜索算法。它模拟自然选择和遗传机制&#xff0c;通过迭代搜索最优解。本文将介绍遗传算法的原理、步骤及其在实际应用中…

中国居民膳食指南书籍知识点汇总

人如果吃不好&#xff0c;就不能好好思考&#xff0c;好好爱&#xff0c;好好休息。——维吉尼亚伍儿夫 文章目录 书籍简介饮食准则推荐膳食图示 准则一&#xff1a;食物多样&#xff0c;合理搭配合理搭配的方法平衡膳食的科学原理均衡饮食的作用食物功效&#xff08;有科学实验…

LeeCode Practice Journal | Day25_Backtracking04

491. 非递减子序列 题目&#xff1a;491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a;代码随想录 (programmercarl.com) solution public class Solution {public List<IList<int>> results new List<IList<int>>();pu…

力扣224【基本计算器】

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 注意:不允许使用任何将字符串作为数学表达式计算的内置函数&#xff0c;比如 eval() 。 1 < s.length < 3 * 105 s 由数字、‘’、‘-’、‘(’、‘)’、和 ’ ’ 组成 s 表示一个有效的…

02、爬虫数据解析-Re解析

数据解析的目的是不拿到页面的全部内容&#xff0c;只拿到部分我们想要的内容内容。 Re解析就是正则解析&#xff0c;效率高准确性高。学习本节内容前需要学会基础的正则表达式。 一、正则匹配规则 1、常用元字符 . 匹配除换行符以外的字符 \w 匹配字母或数字或下划…

基于Python的房产数据分析系统的设计与实现(源码+lw+部署文档+讲解等)

文章目录&#xff1a; 目录 详细视频演示 设计文档详细参考 技术开发的参考技术栈&#xff01; 2.1 Python语言 2.2 Django框架 2.3 MySQL 2.4 Hadoop介绍 2.5 Scrapy介绍 4.2 系统结构设计 4.3 数据库设计 界面设计与功能实现 5.1系统登录注册实现 5.2管理员模块…

【请求代理】springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能

springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能 一、前言二、解决思路三、基于gateway实现四、基于过滤器Filter实现五、问题总结 **注&#xff1a;本文源码获取或者更多资料&#xff0c;关注公众号&#xff1a;技术闲人**一、前言 在项目开发时会遇到w…

基于yolov8的口罩检测模型

项目介绍 本项目基于yolov8对图像进行训练&#xff0c;可以检测戴口罩的人与没有带口罩的人的图片和视频&#xff0c;除此之外&#xff0c;还提供了数据分析界面&#xff0c;支持检测过的信息转化为excel&#xff0c;信息可视化等功能 配置过程 软件开发环境:python3.9 系统…

前端开发:HTML与CSS

文章目录 前言1.1、CS架构和BS架构1.2、网页构成 HTML1.web开发1.1、最简单的web应用程序1.2、HTTP协议1.2.1 、简介1.2.2、 http协议特性1.3.3、http请求协议与响应协议 2.HTML概述3.HTML标准结构4.标签的语法5.基本标签6.超链接标签6.1、超链接基本使用6.2、锚点 7.img标签8.…

Apollo:实时通信架构CyberRT入门, my writer

1. 简介 1.1 从 ROS 系统说起 Apollo 最初用的中间件是 ROS(机器人操作系统),在 v3.0 之前用的都是基于 ROS 框架进行开发。概括来说,ROS 系统主要包含三方面: 第一是通信系统,ROS 是个分布式的松耦合系统,算法模块是以独立的进程形式存在的,也就是我们常说的 Node。R…

单击和一些案例

一、单击 1、单击概念 除了定位鼠标之外&#xff0c;processing鼠标还捕捉鼠标是否被单击。mousePressed在鼠标单击和不单击的情况下有不同的值。mousePressed变量是一种bool变量&#xff0c;也就是说它只有两个可能的值&#xff0c;真和假。当鼠标按下的时候mousePressed的值…