程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 后端手册

  • 前端手册

    • 前端通用方法
    • 前端开发规范
    • 前端请求流程
    • 前端路由使用
    • Vue 组件使用
    • 前端动态菜单
    • 前端权限控制
    • 前台菜单管理
    • 多级目录与路由
      • 一、多级目录路由配置
        • 1. 基本结构
        • 2. <router-view> 的使用
      • 二、多级目录自动配置
      • 三、总结与注意事项
    • 前端页签缓存
    • 使用 Svg Icon 图标
    • 使用字典功能
    • 动态系统参数
    • Axios 封装
    • 切换访问路径
    • 内容复制功能
  • 组件文档

  • 数据库分析

  • 若依框架
  • 前端手册
scholar
2024-08-31
目录

多级目录与路由

# 多级目录与路由嵌套使用指南

在 Vue.js 项目中,如果你的路由是多级目录结构,比如存在三级或更多级的路由嵌套情况,那么需要注意以下几点。本文将详细总结多级目录的配置方法和注意事项,以确保路由能够正确渲染。

# 一、多级目录路由配置

在若依框架中,通常会使用嵌套路由来实现多级目录结构。每一级目录对应一个 router-view,以确保子路由内容能够正确显示。

# 1. 基本结构

假设我们有一个三级嵌套路由,目录结构如下:

- system
  - log
    - index.vue
    - detail.vue
1
2
3
4

路由配置示例如下:

{
  path: '/system',
  component: Layout,
  redirect: 'noRedirect',
  name: 'System',
  meta: { title: '系统管理', icon: 'system' },
  children: [
    {
      path: 'log',
      name: 'Log',
      component: () => import('@/views/system/log/index.vue'),
      meta: { title: '日志管理', icon: 'log' },
      children: [
        {
          path: 'detail',
          name: 'LogDetail',
          component: () => import('@/views/system/log/detail.vue'),
          meta: { title: '日志详情', icon: 'detail' }
        }
      ]
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 2. <router-view> 的使用

在多级目录中,如果有多层路由嵌套,在每一级的根组件中需要添加一个 <router-view>,用于渲染其子路由。

例如在 @/views/system/log/index.vue 中:

<template>
  <div>
    <!-- 这是二级路由的视图容器 -->
    <router-view />
  </div>
</template>

<script>
export default {
  name: 'LogIndex'
}
</script>
1
2
3
4
5
6
7
8
9
10
11
12

注意: 最新版本的若依框架已经支持自动配置嵌套路由组件,因此不再需要手动添加 <router-view>。但对于旧版项目或自定义需求,手动添加仍然是必需的。

# 二、多级目录自动配置

若依框架的最新版本已经优化了多级目录的配置,自动处理了嵌套路由的 <router-view> 问题。开发者不再需要在每一级目录的根组件中手动添加 <router-view>,框架会自动识别和渲染。

示例

如果你的项目使用的是最新版本的若依框架,假设你有一个三级目录 system/log/detail,你只需配置路由,框架会自动处理:

{
  path: '/system/log/detail',
  name: 'LogDetail',
  component: () => import('@/views/system/log/detail.vue'),
  meta: { title: '日志详情', icon: 'detail' }
}
1
2
3
4
5
6

无需在 index.vue 中添加 <router-view>,系统会自动配置并渲染子路由。

# 三、总结与注意事项

  1. 手动添加 <router-view>: 如果你的项目中有多级嵌套路由,并且使用的是旧版框架或有特殊需求,确保在每一级的根组件中添加 <router-view> 以正确渲染子路由。

  2. 自动配置组件: 最新版本的若依框架已经支持多级目录自动配置,无需手动添加 <router-view>。

  3. 灵活配置路由: 无论是手动添加还是自动配置,都可以灵活设置每一级路由的 meta 信息,如 title、icon 等,以便于在菜单和面包屑中展示。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
前台菜单管理
前端页签缓存

← 前台菜单管理 前端页签缓存→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式