超级英雄的导航之旅:动态路由和嵌套路由

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
文章目录
- 介绍动态路由的概念和用法
- 处理带参数的路由
- 创建嵌套路由的结构和用法
介绍动态路由的概念和用法
动态路由是指根据不同的参数或路径生成的路由。它允许我们根据特定的值动态创建路由,而不是在路由配置时硬编码地写入所有可能的路由。
动态路由的概念和用法如下:
- 定义动态路由路径:在路由配置中,可以使用冒号(:)来定义动态片段,表示该部分路径可以根据特定的值动态生成。
const router = new VueRouter({routes: [{path: '/users/:id',component: UserDetail}]
});
在上述代码中,路径 /users/:id 中的 :id 是一个动态片段,表示该部分路径可以匹配任意的值。
- 访问动态路由参数:在路由组件中,可以通过
$route.params来访问动态路由的参数。
// UserDetail.vue
export default {created() {const userId = this.$route.params.id;// 使用 userId 做相应的操作,例如获取用户信息}
};
在上述代码中,使用 this.$route.params.id 可以获取路由的动态参数 id,并在组件中使用。
- 监听动态路由的变化:如果动态路由的参数发生变化,可以监听
$route对象的变化,并通过钩子函数或观察者来处理。
钩子函数方式监听:
// UserDetail.vue
export default {beforeRouteUpdate(to, from, next) {const userId = to.params.id;// 根据新的 userId 做相应的操作next();}
};
观察者方式监听:
// UserDetail.vue
export default {watch: {'$route' (to, from) {const userId = to.params.id;// 根据新的 userId 做相应的操作}}
};
通过钩子函数或观察者,可以在动态路由参数发生变化时进行相应的操作,例如重新加载数据或更新组件。
动态路由允许我们根据不同的参数或路径生成路由,使得应用更灵活和可扩展。它适用于需要根据不同资源或实体显示不同内容的情况,例如显示不同用户的详细信息或不同文章的内容。
处理带参数的路由
处理带参数的路由是 Vue Router 中常见的需求之一。你可以使用动态路由或查询参数来处理带参数的路由。下面我将分别介绍它们的概念和用法:
- 动态路由参数:
动态路由参数是将参数直接嵌入到路由的路径中。例如,对于路径/users/:id,其中的:id就是一个动态路由参数。可以通过动态路由参数来实现根据不同的参数值动态生成路由。
定义动态路由路径时,在路由配置中使用冒号(:)来定义动态片段:
const router = new VueRouter({routes: [{path: '/users/:id',component: UserDetail}]
});
访问动态路由参数时,在路由组件中使用 $route.params 来获取参数的值:
// UserDetail.vue
export default {mounted() {const userId = this.$route.params.id;// 使用 userId 做相应的操作,例如获取用户信息}
};
- 查询参数:
查询参数是以键值对的形式出现在 URL 中的参数。它们通常用于筛选、排序或传递其他可选参数。
定义带查询参数的路由路径时,可以使用 query 字段来指定查询参数:
const router = new VueRouter({routes: [{path: '/search',component: SearchResults}]
});
在页面跳转时,可以通过 $router.push 方法传递查询参数:
this.$router.push({path: '/search',query: {keyword: 'Vue',page: 1}
});
在路由组件中,可以通过 $route.query 来获取查询参数的值:
// SearchResults.vue
export default {mounted() {const keyword = this.$route.query.keyword;const page = this.$route.query.page;// 使用 keyword 和 page 做相应的操作,例如进行搜索结果展示}
};
通过查询参数,你可以在 URL 中传递一些可选的参数,从而实现不同的页面展示和功能触发。
以上是处理带参数的路由的概念和用法,你可以根据你的具体需求选择合适的方式。
创建嵌套路由的结构和用法
嵌套路由是指在 Vue Router 中创建具有父子关系的路由结构。通过嵌套路由,你可以在应用程序中创建层次结构和组织路由,以更好地管理和展示你的页面。
下面是创建嵌套路由的结构和用法:
- 定义父路由和子路由:
在路由配置中,可以定义父路由和子路由。父路由用于对应一个页面组件,而子路由则是该页面组件内的子组件的路由。
const router = new VueRouter({routes: [{path: '/users',component: Users,children: [{path: 'profile',component: UserProfile},{path: 'settings',component: UserSettings}]}]
});
在上述代码中,/users 是父路由的路径,对应的组件是 Users。Users 组件内部有两个子组件的路由,即 /users/profile 对应 UserProfile 组件,/users/settings 对应 UserSettings 组件。
- 在父组件中设置
<router-view>:
在父路由对应的组件模板中,添加<router-view>指令来标记子组件的出口位置。
<!-- Users.vue -->
<template><div><h1>Users Page</h1><router-view></router-view> <!-- 子组件的路由将在此处渲染 --></div>
</template>
在上述代码中,<router-view> 指令将作为子组件路由的渲染位置。
- 切换子路由:
在父组件的模板中,可以使用<router-link>组件来切换不同的子路由。
<!-- Users.vue -->
<template><div><h1>Users Page</h1><router-link to="/users/profile">Profile</router-link><router-link to="/users/settings">Settings</router-link><router-view></router-view></div>
</template>
在上述代码中,<router-link> 组件将显示为链接,点击链接将切换到对应的子路由。
通过以上步骤,你就可以创建一个嵌套路由的结构。当访问父路由时,父组件将显示,并在其内部的 <router-view> 处渲染对应的子组件。
相关文章:
超级英雄的导航之旅:动态路由和嵌套路由
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
发现个好玩的 Windows微信对话框换行
按住shift键按enter就是换行 直接按enter为发送...
Vue3最佳实践 第八章 ESLint 与 测试 ( Jest )
Jest 测试 Vue 组件 在前端项目开发过程中,有很多时候也会要进行测试工作。本文将重点介绍如何利用 JavaScript 测试框架 Jest 进行高效的测试。Jest 是由 FaceBook 开发的顶级测试框架之一,广受开发者们的欢迎和信赖。在接下来的内容中,我…...
【抓包分析】通过ChatGPT解密还原某软件登录算法实现绕过手机验证码登录
文章目录 🍋前言实现效果成品广告抓包分析一、定位加密文件二、编辑JS启用本地替换 利用Chatgpt进行代码转换获取计划任务id模拟数据请求最后 🍋前言 由于C站版权太多,所有的爬虫相关均为记录,不做深入! 今天发现gith…...
【UE】属性同步,源码详解一个勾选了Actor复制的Actor第一次被创建时经历了什么
本文参考https://zhuanlan.zhihu.com/p/640723352 准备工作 先准备一个勾选了复制的Actor,然后在游戏开始时Spawn这个Actor 源码过程详解 发送属性同步 在NetDriver的TickFlush中发送属性同步的数据 1、ServerReplicateActors_BuildConsiderList 去找到所有需…...
Spring中Bean的完整生命周期!(Bean实例化的流程,Spring后处理器,循环依赖解释及解决方法)附案例演示
Bean实例化的基本流程 加载xml配置文件,解析获取配置中的每个的信息,封装成一个个的BeanDefinition对象将BeanDefinition存储在一个名为beanDefinitionMap的Map<String,BeanDefinition>中ApplicationContext底层遍历beanDefinitionMap,…...
AcWing第 127 场周赛 - AcWing 5283. 牛棚入住+AcWing 5284. 构造矩阵 - 模拟+快速幂+数学
AcWing 5283. 牛棚入住 题目数据范围不大,直接暴力模拟即可 按照题目所说的意思即可。 #include <math.h> #include <stdio.h> #include <algorithm> #include <cstring> #include <iostream> using namespace std; const int N 1…...
2023-10-31 游戏开发-微信小游戏-文档记录
摘要: 2023-10-31 游戏开发-微信小游戏-文档记录 微信开发文档: 快速上手 | 微信开放文档 基础 | 微信开放文档 Cocos/Laya/Egret引擎适配 | 微信开放文档 cocos和微信平台相关文档: Cocos Creator 3.8 手册 - 发布到微信小游戏...
2023NOIP A层联测21-异或
给定一长度为 N N N 的由非负整数组成的数组 a a a,你需要进行一系列操作,每次操作选择一个区间 [ l , r ] [l,r] [l,r],将 a [ l , r ] a_{[l,r]} a[l,r] 异或上 w w w。你需要将 a i a_i ai 全部变为 0 0 0。 求最小操作次数。…...
分布式存储系统Ceph应用组件介绍
1、 无中心架构分布式存储Ceph Ceph是一套开源的分布式存储系统。具有可靠性高,性能优良,可伸缩,与HDFS不同的地方在于,该架构中没有中心节点。 Ceph优点在于它不单单是存储,同时还充分利用了存储节点上的计算能…...
【数据结构】数组和字符串(十一):字符串的定义与存储(顺序存储、链式存储及其C语言实现)
文章目录 4.3 字符串4.3.1 字符串的定义与存储1. 顺序存储2. 链式存储3. C语言实现顺序存储4. C语言实现链式存储代码优化 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列,简称为串。例如 “good morning”就是由12个字符构成的一个字符…...
zk-Bench:SNARKs性能对比评估工具
1. 引言 JENS ERNSTBERGER等人2023年论文《zk-Bench: A Toolset for Comparative Evaluation and Performance Benchmarking of SNARKs》。 zk-Bench,定位为: 定位为首个公钥密码学性能评估基准测试框架和工具,重点关注通用ZKP系统的实测评…...
【Linux】NTP服务器配置、时间修改
查看当前系统时间date修改当前系统时间date -s "2018-2-22 19:10:30"查看硬件时间hwclock --show修改硬件时间hwclock --set --date "2018-2-22 19:10:30"同步系统时间和硬件时间hwclock --hctosys保存时钟clock –w1.设置NTP Server服务检查系统是否安装n…...
毕业设计基于SpringMVC+Mybatis+Bootstrap的电影院管理系统源码+数据库
<<电影院管理系统>> 电影院管理系统:SpringMVCJSPTomcatMybatisBootstrapJqueryAnimateCSSLayerJS 项目部署:该项目是IDEA版本,Maven项目 前端依赖: Bootstrap-3.4.1Animate.css- 4.1.1Jquery-3.6.0Layer-v3.5.1B…...
vantUI(Tabbar标签页)浏览器返回上一页的失效问题
在开发中遇到这样一个问题,由页面1切换到页面2,再点击浏览器的回退,无法回退到页面1。 开始以为是路由配置的有问题,但是子页面可以正常回退,因为replace只是替换路由,而不会往history栈中记录路由&#x…...
【算法】Prim算法(求最小生成树)
题目 给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。 求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。 给定一张边带权的无向图 G(V,E),其中 V 表示图中点的集合,E…...
go语言,yaml实现简单的workflow工作流
目录 1.创建一个yaml文件,名字可以是student.yaml 2.创建go文件测试 3.执行结果 本文章内容,只是一个简单的案例,但足够映射到一个大的项目中。 工作流作用:工作流的作用就是通过yaml配置文件,将关于本工作流的一个…...
BaiduMallServcie
说明 本文档指导业务开发步骤 BaiduMallServcie 说明一. 登录业务1.1 数据库设计1.1.1 管理员表1.1.2 角色表1.1.3 关联表 管理员表与角色表关联1.1.4 权限表1.1.5 关联表 角色表与权限表关联1.1.6 管理员登录日志表1.1.7 查询权限示例1.2 添加用户一. 登录业务 1.1 数据库设…...
vue3+jsx+antd的插槽写法之一
如果在jsx里面直接这样按照官方的写法是会报错的 正确写法是:...
Shell 学习之 if 命令
1. 执行流程 在 Shell 脚本中,if 是一个 控制流语句,用于进行条件判断,根据条件的结果执行相应的操作。 # 首先,Shell 会检查表达式 condition 返回的 boolean 值。 # 如果 condition 的值为真,则执行 then 代码块&a…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
