在vite中搭建动态路由

1.在每一个views文件夹中创建page.js配置文件,作为路由的meta选项配置

// page.js
export default {title: "首页",// ...
};

2.在router中使用import.meta.glob加载所有的路由模块

import { createRouter, createWebHistory } from "vue-router";// 寻找views文件号中所有的page.js
const pages = import.meta.glob("../views/**/page.js", {eager: true, // 渴望得到更多的数据import: "default", // 希望得到default中的数据
});
// 加载所有的页面模块
const pageComps = import.meta.glob("../views/**/index.vue");
const routes = Object.entries(pages).map(([path, meta]) => {const pageJsPath = path; // 拿到原始的pathpath = path.replace("../views", "").replace("/page.js", "");path = path || "/";// 将原始的path种的page.js替换为index.vueconst compsPath = pageJsPath.replace("page.js", "index.vue");const name = path.split("/").filter(Boolean).join("-") || "index"; // 去掉空字符串// 映射为一个路由配置对象return {path,name,component: pageComps[compsPath],meta,children: [],};
});
// 选出layout布局路由组件
const newRoutes = routes.find((item) => item.name === "index");
// 选出除了布局组件以外其他的组件
const filterRoutes = routes.filter((item) => item.name !== "index");
// 将其他的路由组件作为layout组件的子组件
filterRoutes.forEach((item) => {newRoutes.children.push(item);
});const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [newRoutes],
});// 在路由跳转前设置页面标题
router.beforeEach((to, from, next) => {document.title = to.meta.title; // 设置页面标题next();
});export default router;

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

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

相关文章

eureka迁移到nacos--双服务中心注册

服务注册中心的迁移有多种方式,官网使用nacos sync,还有民间开发的双注册中心组件eureka-nacos-proxy,但是我用了不太顺利,所以用的是阿里巴巴的双注册中心组件edas-sc-migration-starter spring boot:2.5.3 引入依赖 …

Springboot集成Docker并将镜像推送linux服务器

案例使用springboot项目,在IDEA 中集成Docker生成镜像,并将镜像发布到linux服务器 具体步骤如下: 1、Centos7安装Docker 更新系统的软件包列表 sudo yum update安装Docker所需的软件包和依赖项: sudo yum install docker完成…

JS实现数组的扁平化(ES6实现)----例子+难点解析

要求: 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中如: [1, [3, [2, 4]]] > [1, 3, 2, 4] 基础知识: arr.concat() 语法:数组.concat(其他数组) 作用:将其他数组和数组拼接在一起 返回值:拼接好的新数…

ASP.NET Core 的 Routing

ASP.NET Core 的 Routing ASP.NET Core 的 controllers 使用Routing 中间件匹配客户端的 url 请求,然后映射到对应的 controller 的处理方法(Action)上。 Actions 可以是 常规路由 或 属性路由 的映射。 MVC App一般使用常规路由。 REST API…

华为OD机试 - 数字序列比大小 - 贪心算法(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 一、题目描述 A,B两个人万一个数字比大小的游戏,在游戏前,两个人会拿…

【JAVA】建造者模式

【JAVA】建造者模式 建造者模式是一种创建型设计模式,用于将对象的构建过程与其表示分离。它可以通过一步一步地构建复杂对象,使得相同的构建过程可以创建不同的表示。 在Java中,建造者模式通常由以下几个组件组成: 产品&#x…

Linux 内核动态打印调试(dev_info、 dev_dbg )

目录 前言 1 printk消息级别 2 调整内核printk打印级别 3 dev_xxx函数简介 4 配置内核使用动态打印 5 动态调试使用方法 6 动态打印调试的基本原理 🎈个人主页🎈:linux_嵌入式大师之路的博客-CSDN博客🎉🎉&…

数据库连接工具类(以mysql为例子)

依赖&#xff1a; <!-- 连接MySQL数据库的依赖&#xff0c;其他数据库网上找pom依赖替换 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency&…

xss-labs靶场通关详解

文章目录 前言level1level2level3level4level5level6level7level8level9level10level11level12level13level14level15level16level17level18level19&level20 前言 赶着假期结尾的时候&#xff0c;赶紧给自己找点任务做。现在对xss还是一知半解&#xff0c;只是了解个大概&a…

vim系列之常用命令

一.欢迎来到我的酒馆 在本章节介绍vim编辑器常用命令。 目录 一.欢迎来到我的酒馆二.vim常用命令 二.vim常用命令 2.1vim编辑器常用命令&#xff1a; i: 在光标位置处插入字符。o: 在下一行开始位置插入一行。yy: 复制光标所在的行p: 在光标位置粘贴剪切板内容。

Java seven 解读正则表达式、java方法的使用

目录 Java 正则表达式1. java.util.regex 包2. 捕获组3. 正则表达式语法4. Matcher 类的方法 Java 方法1. 定义&#xff1a;2. 优点3. 命名规则4. 方法调用5. 方法的重载6. 构造方法7. 可变参数8. finalize() 方法 Java 正则表达式 1. java.util.regex 包 Pattern 类&#xff…

自用Eclipse配置记录

喜欢用eclipse写代码&#xff0c;由于现在的eclipse配置导出的功能缺失较多。这里开一帖把本人常用的配置记录一番&#xff0c;省得再到处找。 另&#xff1a;工作空间中有个.metadata 目录保存了相关的插件及配置&#xff0c;可以复制到其他空工作间中复用配置。 设置工作空间…

Unity碰撞检测

Unity碰撞检测 前言准备材料代码使用OnCollisionEnter()进行碰撞Collider状态代码 使用OnTriggerEnter()进行碰撞Collider状态代码 区别代码OnCollisionEnter()OnTriggerEnter() 碰撞显示效果OnCollisionEnter()OnTriggerEnter() 提示结语 前言 碰撞检测可以说时学习Unity中最…

ChatGPT⼊门到精通(5):ChatGPT 和Claude区别

⼀、Claude介绍 Claude是Anthropic开发的⼀款⼈⼯智能助⼿。 官⽅⽹站&#xff1a; ⼆、Claude能做什么 它可以通过⾃然语⾔与您进⾏交互,理解您的问题并作出回复。Claude的主要功能包括: 1、问答功能 Claude可以解答⼴泛的常识问题与知识问题。⽆论是历史上的某个事件,理科…

k8s之存储篇---数据卷Volume

数据卷概述 Kubernetes Volume&#xff08;数据卷&#xff09;主要解决了如下两方面问题&#xff1a; 数据持久性&#xff1a;通常情况下&#xff0c;容器运行起来之后&#xff0c;写入到其文件系统的文件暂时性的。当容器崩溃后&#xff0c;kubelet 将会重启该容器&#xff…

群晖DSM下套件及系统网页服务器ssl证书自动更新

关键字&#xff1a; DSM ssl 证书 起因 群晖下自建服务(alist3)和系统服务在外部网络访问需要加ssl安全证书来实现基础的传输保护。 申请证书和续期手动操作都还好&#xff0c;不算太麻烦&#xff0c;但是每个应用单独证书需要复制和重启&#xff0c;再配合服务重启一套下来就…

【openGauss2.1.0实现X-Tuner进行参数调优】

openGauss2.1.0实现X-Tuner进行参数调优 一、环境说明二、参数调优步骤 openGauss2.1.0作为一款全新的开源关系型数据库&#xff0c;在性能方面具有很大的优势。通过使用X-Tuner工具&#xff0c;可以对openGauss2.1.0的参数进行优化&#xff0c;以提高其性能。 一、环境说明 华…

Javaweb入门

Spring Spring发展到今天已经形成一种开发生态圈&#xff0c;Spring提供若干个子项目&#xff0c;每个项目用于完成特定的功能。 Spring Boot可以帮助我们非常快速的构建应用程序、简化开发、提高效率 SpringBootWeb入门 需求&#xff1a;使用Spring Boot开发一个web应用&a…

软件测试面试怎样介绍自己的测试项目?会问到什么程度?

想知道面试时该怎样介绍测试项目&#xff1f;会问到什么程度&#xff1f;那就需要换位思考&#xff0c;思考HR在这个环节想知道什么。 HR在该环节普遍想获得的情报主要是下面这2个方面&#xff1a; 1&#xff09;应聘者的具体经验和技术能力&#xff0c; 2&#xff09;应聘者的…

Vector 动态数组(迭代器)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 Vector<T> 动态数组&#xff08;模板语法&#xff09; 本文目标 1 熟悉迭代器设计模式&#xff1b; 2 实现数组的迭代器&#xff1b; 3 基于迭代器的容器遍历&#xff1b; 迭代器语法介绍 对迭…