Vue前端开发-多级路由配置

news2024/12/27 5:11:07

在Vue 路由数组中,允许配置多级的路由对象结构,可以是二级、三级或者更多级别,最大级别原则上没有限制,但通常最大的是三或四级,这种路由结构,称之为多级路由。

例如:一级路由地址/list,打开的是一个学校列表组件,列表中又有年级链接,则年级的链接路由为/list/grade,这个年级路由则为二级路由,如果年级组件中又存在班级链接,则班级的链接路由为/list/grade/class,这个班级的路由则为三级路由。

多级路由结构的配置严格遵循JSON格式中父子之间的层级关系,子节点通过父节点中的children 属性向下进行配置,但在配置子类路由时,path路径中不能使用“/”符号开头,否则,子类路由将会以一级路由形式查找组件。

为了更好地说明多级路由配置的过程,接下来通过一个完整的实例来进行演示。

多级路由配置

1. 功能描述

在首页中点击“学校首页”链接,则路径为/list,并进入列表页,在列表页中,点击“进入年级”链接,则路径为/list/grade,并进入年级页,在年级页中,点击“进入班级”链接,则路径为/list/grade/cls,并进入班级页,并显示班级页中的内容。

2. 实现代码

在项目的views 文件夹中,分别添加三个名为“list”、“grade”、“cls”的.vue文件,用户路由跳转时对应的组件,在文件中分别加入如清单8-3、8-4、8-5所示代码。

代码清单8-3 list.vue代码

<template>
    <div>
        <nav>首页 > 列表</nav>
        <a href="/list/grade">进入年级</a>
        <router-view></router-view>
    </div>
</template>

代码清单8-4 grade.vue代码

<template>
    <div>
        <nav>首页 > 列表 > 年级</nav>
        <a href="/list/grade/cls">进入班级</a>
        <router-view></router-view>
    </div>
</template>

代码清单8-5 cls.vue代码

<template>
    <div>
        <nav>首页 > 列表 > 年级 > 班级</nav>
        <div>我是一名班级学生</div>
    </div>
</template>

为了实现多级路由跳转的功能,需要修改已完成基本配置的路由对象,先在src目录中添加一个名称为router的文件夹,并在文件夹中添加一个名为index的.js文件,加入如代码清单8-6所示的内容。

代码清单8-6 index.js代码

import { createRouter, createWebHistory } from 'vue-router';

// 配置组件对应路径
const routes = [
    {
        path: '/list',
        name: 'list',
        component: () => import('../views/list.vue'),
        children: [
            {
                path: 'grade',
                name: 'grade',
                component: () => import('../views/grade.vue'),
                children: [
                    {
                        path: 'cls',
                        name: 'cls',
                        component: () => 
				import('../views/cls.vue')
                    }
                ]
            }
        ]
    }
]
const router = createRouter({
    history: createWebHistory(process.env.BASE_URL),
    routes
})
export default router

创建并导出路由对象后,还需要将该对象挂载到新建的app应用中,因此,需要将入口文件main.js进行如代码清单8-7所示的修改。

代码清单8-7 main.js代码

import { createApp } from 'vue'
import App from './App.vue'
import Global from './components/ch6/Global'
import router from './router/index'
let app = createApp(App);
app.component("Global", Global);
app.use(router);
app.mount('#app')

3. 页面效果

保存代码后,页面在Chrome浏览器下执行的页面效果如图8-2所示。
在这里插入图片描述

4. 源码分析

需要说明的是:多级路由配置成功后,在对应组件中,一个父层的路由如果需要加载子层路由的组件,必须在父层组件中添加一个router-view标签来实现,有多少层嵌套,就需要有多少个router-view标签来一一对应,否则,多层配置的路由组件无法显示。

根据上述描述,在实例的组件代码中,list组件需要加载子路由对应的grade组件,则添加了一个router-view标签,grade组件需要加载子路由对应的cls组件,则也添加了一个名为router-view的标签,子路由的对应的组件就是通过这个标签加载的。

当然,如果不想显示全部加载的子路由组件,也可以根据不同路由地址的结构,通过显示和隐藏的方式来动态显示对应的子路由组件。
在这里插入图片描述

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

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

相关文章

【二分查找】力扣 875. 爱吃香蕉的珂珂

一、题目 二、思路 速度 k&#xff08;单位&#xff1a;根/小时&#xff09;是存在一个取值范围的。 速度越大肯定在规定的时间之内一定会吃完全部的香蕉&#xff0c;但也是可以确定出一个上界的。由于只要保证一小时之内&#xff0c;可以吃完香蕉数目最多的那一堆的香蕉&…

C语言——指针基础

1 指针基础 怎么获得变量地址 1 如何产生一个指针变量——>类型* 标识符;int* p1;char* p2;double* p3;//不同类型的基本指针占用内存是一样的都是4个字节&#xff08;32位&#xff09;/8个字节&#xff08;64位&#xff09;&#xff0c;都是存的地址2 数组名是数组首地址…

Leetcode day1.两数相加(2) 2.整数反转(7)

注意点&#xff1a;1.链表会出现其中一个已经为空&#xff0c;另一个缺还是有数据 2.相加时会出现进位操作 解法一、 利用队列的性质&#xff08;基础不好 第一时间想到的&#xff09; 很像队列的性质&#xff0c;先进先出&#xff0c;逐步计算。但是最后要换成链表样式。 …

在Ubuntu-22.04 [WSL2]中配置Docker

文章目录 0. 进入Ubuntu-22.041. 更新系统软件包2. 安装Docker相关依赖包3. 添加Docker官方GPG密钥4. 添加Docker软件源5. 安装Docker Engine5.1 更新软件包列表5.2 安装Docker相关软件包 6. 验证Docker安装是否成功6.1 查看Docker版本信息6.2 启动Docker6.3 配置镜像加速器6.4…

51单片机应用开发(进阶)---串口接收字符命令

实现目标 1、巩固UART知识&#xff1b; 2、掌握串口接收字符数据&#xff1b; 3、具体实现目标&#xff1a;&#xff08;1&#xff09;上位机串口助手发送多字符命令&#xff0c;单片机接收命令作相应的处理&#xff08;如&#xff1a;openled1 即打开LED1;closeled1 即关…

【查询基础】.NET开源 ORM 框架 SqlSugar 系列

&#x1f4a5; .NET开源 ORM 框架 SqlSugar 系列 &#x1f389;&#x1f389;&#x1f389; 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

基于Matlab BP神经网络的电力负荷预测模型研究与实现

随着电力系统的复杂性和规模的不断增长&#xff0c;准确的电力负荷预测对于电网的稳定性和运行效率至关重要。传统的负荷预测方法依赖于历史数据和简单的统计模型&#xff0c;但这些方法在处理非线性和动态变化的负荷数据时&#xff0c;表现出较大的局限性。近年来&#xff0c;…

LeetCode - #150 逆波兰表达式求值

文章目录 前言1. 描述2. 示例3. 答案关于我们 前言 我们社区陆续会将顾毅&#xff08;Netflix 增长黑客&#xff0c;《iOS 面试之道》作者&#xff0c;ACE 职业健身教练。&#xff09;的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新…

mysql基础学习1

useradd -r -g mysql -s /bin/false mysql (-r)系统用户 不能登录 A temporary password is generated for rootlocalhost: d>#jT7rfoaz) 看是否启动 看进程 端口 直接连接 看日志 varchar (20) char(20)更耗空间 create table student_info(id int,name varchar(20),s…

PPT怎样做的更加精美

目录 PPT怎样做的更加精美 3D的GIF图片 3维空间图​编辑 结果有明显的对比 阅读高质量文献,采用他们的图 PPT怎样做的更加精美 3D的GIF图片 3维空间图 结果有明显的对比

Marvell第四季度营收预计超预期,定制芯片需求激增

芯片制造商Marvell Technology&#xff08;美满电子科技&#xff09;&#xff08;MRVL&#xff09;在周二发布了强劲的业绩预告&#xff0c;预计第四季度的营收将超过市场预期&#xff0c;得益于企业对其定制人工智能芯片的需求激增。随着人工智能技术的快速发展&#xff0c;特…

爬虫第四篇:Xpath 路径表达式全解析:从网页基础到爬取百度贴吧图片实战

简介&#xff1a;本文围绕 Xpath 路径表达式展开讲解&#xff0c;先是介绍了网页相关基础如 html、css、vue 以及前后端分离的概念与示例&#xff0c;包括各部分的结构、作用及简单代码展示&#xff0c;随后详细阐述了 xml 的节点关系、选取节点、谓语等理论知识&#xff0c;最…

使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)

本文使用lumerical脚本语言创建弯曲波导、设置有限差分时域(FDTD)模拟、改变波导弯曲半径计算损耗、绘制图像展示电场强度分布情况及对具有不同弯曲半径的波导进行一系列模拟和分析操作(代码均有注释讲解)。 一、创建弯曲波导 1.1 基本结构讲解 (1)包层(Clad) 在波导结…

HarmonyOS4+NEXT星河版入门与项目实战(23)------实现手机游戏摇杆功能

文章目录 1、案例效果2、案例实现1、代码实现2、代码解释4、总结1、案例效果 2、案例实现 1、代码实现 代码如下(示例): import router from @ohos.router import {ResizeDirection } from @ohos.UiTest import curves

Redis面试专题-持久化

前言 开始Redis面试知识的复习和资料的收集&#xff08;收集和参考了网上的优质文章&#xff09;&#xff0c;本篇文章会不断更新&#xff0c;本系列文章主要分为两部分&#xff0c;一部分是该专题所涉及的相关基础知识&#xff0c;另一部分是面试题与思考题&#xff0c;大部分…

Blender导入下载好的fbx模型像的骨骼像针戳/像刺猬

为什么我下载下来的骨骼模型和我自己绑定的模型骨骼朝向完全不一样 左边是下载的模型 右边是我自己绑定的模型 左边的模型刚刚感觉都是像针一样往外戳的&#xff0c;像刺猬一样那种。 解决方法勾选自动骨骼坐标系

Ubuntu22.04上kdump和crash的使用

0.前言 1.引用&#xff1a; 解决Linux内核问题实用技巧之 - Crash工具结合/dev/mem任意修改内存-腾讯云开发者社区-腾讯云 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 ubuntu内核转储分析——kdump和crash的下载和使用_ubuntu kdump-CSDN博客 U…

linux安全-firewalld防火墙-基础讲解

目录 一、 防火墙技术分类 二、 firewalld 三、 firewalld支持的类型的NAT 四、 富语言 五、 firewalld配置方式 六、 firewall-cmd命令 七、 小实验 这篇文章将对 firewalld 防火墙的基础知识进行介绍 firewalld简介&#xff1a;firewalld的作用是为包过滤机制提供匹配…

Android中使用NSD扫描,实现局域网内设备IP的发现

0. 前言 本文介绍了什么是NSD协议&#xff0c;并介绍了如何在Android中实现NSD的服务端和客户端&#xff0c;实现局域网内的设备发现功能。 1. NSD是什么 在Android开发中&#xff0c;NSD&#xff08;Network Service Discovery&#xff09;是一种用于在局域网内发现其他设备…

ROS2 系列学习教程(总目录)

ROS2Learning ROS1 系列学习教程(总目录) 一、ROS2 简介 1.1 ROS2简介及学习资源汇总 二、ROS2 基础 2.1 ROS2安装详细教程&#xff08;以Humble为例&#xff09; 2.2 ROS2 构建系统 colcon 介绍、安装与使用 2.3 ROS2 与 ROS1 编码方式对比 ROS2 与 ROS1 编码方式对比&am…