vue3 vite 路由去中心化(modules文件夹自动导入router)

news/2024/12/23 1:17:14/

通过路由去中心化可实现多人写作开发,不怕文件不停修改导致的冲突,modules中的文件可自动导入到index.js中
在这里插入图片描述

// 自动导入模块
const files = import.meta.globEager('./modules/**.js');
const modules = {}
for (const key in files) {modules[key.replace(/(\.\/modules\/|\.js)/g, '')] = files[key].default
}
Object.keys(modules).forEach(item => {routes.push(...modules[item]);
})
// 路由router/index.js
import { createRouter, createWebHistory } from "vue-router";
import { forLogin } from "@/utils/forLoign";
import Index from "@/layout/Index.vue";
import IndexNoMenus from "@/layout/IndexNoMenus.vue";const routes = [{path: "/index",name: "index",redirect: "/",component: Index,meta: {auth: true,keepAlive: false,title: "",},children: [{path: "/",name: "home",component: () => import("@/views/home.vue"),meta: {auth: true,keepAlive: false,title: "首页",},}],},{path: "/",name: "IndexNoMenus",redirect: "/",component: IndexNoMenus,meta: {auth: true,keepAlive: false,title: "",},children: [],},{path: "/login",name: "login",component: () => import("@/views/login.vue"),meta: {auth: false,keepAlive: false,title: "登录",},},{path: "/404",name: "not-found",component: () => import("@/views/404.vue"),meta: {auth: false,keepAlive: false,title: "not-found",},},{path: "/:pathMatch(.*)*",redirect: "/404",meta: {auth: false,keepAlive: false,title: "not-found",},},
];// 自动导入模块
const files = import.meta.globEager('./modules/**.js');
const modules = {}
for (const key in files) {modules[key.replace(/(\.\/modules\/|\.js)/g, '')] = files[key].default
}
Object.keys(modules).forEach(item => {routes.push(...modules[item]);
})// console.log('modules', files, modules, routes);const router = createRouter({history: createWebHistory("/h5/"),routes,
});// 登录拦截跳转
router.beforeEach((to, from, next) => {// * console.log(to)forLogin(to, from, next);
});export default router;

http://www.ppmy.cn/news/1452741.html

相关文章

Android使用kts发布aar到JitPack仓库

Android使用kts发布aar到JitPack 之前做过sdk开发,需要将仓库上传到maven、JitPack或JCenter,但是JCenter已停止维护,本文是讲解上传到JitPack的方式,使用KTS语法,记录使用过程中遇到的一些坑.相信Groovy的方式是大家经常使用的,…

c++实战篇(三) ——对socket通讯服务端与客户端的封装

前言 在前面几篇文章中我们介绍过一些有关于网络编程的相关知识,我们介绍了在tcp传输数据的时候发送缓冲区与接收缓冲区,我们介绍了在tcp发送与接收的过程中可能出现的分包与粘包的问题: c理论篇(一) ——浅谈tcp缓存与tcp的分包与粘包 我们介绍了在网络…

使用Qt for android 获取android PDA设备扫码数据

安装Qt Android 模块、Qt Creator、JDK8 Qt Creator版本太高不行,亲测最新版的会导致无法使用jdk 8(2024-05-04 我的Qt版本是5.15.2,所以我选择了Qt Creator5.0.3进行开发 5.0.3 下载JDK8 JDK8 安装Qt Creator、JDK8 安装Qt Creator没什么…

SharedPreferences源码解析

前言 文章中部分地方SharedPreferences会简写成SP,先抛出几个问题: SP存储的是什么文件,存储在哪个位置?SP是线程安全的吗?SP是如何保证数据安全的?使用SP有哪些问题?SP会把数据加载到内存中吗…

Windows 下用 git clone ... 下载资料,资料下载到什么地方去了?

当你使用 git clone 命令在 Windows 系统上克隆一个仓库时,资料会被下载到你指定的目录中。如果你没有指定目录,那么资料会被下载到你当前所在的目录(命令提示符或终端的当前工作目录)中的一个新文件夹里,这个文件夹的…

webpack与vite

webpack 使用步骤: 初始化项目 pnpm init -y安装依赖webpack、webpack-cli在项目中创建src目录,然后编写代码(index.js)执行pnpm weboack来对代码进行打包(打包后观察dist文件夹) 配置古文件(w…

Android4.4真机移植过程笔记(三)

如果文章字体看得不是很清楚,大家可以下载pdf文档查看,文档已上传~oo~ 7、安装加密APK 需要修改文件如下: 相对Android4.2改动还是蛮大的,有些文件连路径都变了: //Android4.2 1、frameworks/native/libs…

【简单介绍下Lisp的学习历程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…