Vite-自动生成Vue路由

大部分Vue项目使用路由都是在src/router/index.ts中增加routes的配置,如下图

我们可以看到routes的配置重复的代码非常多,且当我们项目页面开始变多时,routes里的元素也会越来越多。

自动生成路由

当我们在页面目录下新建页面文件时,自动帮我们完成routes的配置。

src下新建views目录(项目的页面)

每个页面有个page.ts文件用去设置页面的meta属性

typescript 复制代码
// page.ts
export default {
    title: "登录页面",
};

自动生成路由逻辑

在src/router/index.ts中书写逻辑

typescript 复制代码
import { createRouter, createWebHistory } from "vue-router";

// 读取views下的page.ts文件
const pages = import.meta.glob("../views/**/page.ts", {
    eager: true,
    import: "default",
});
// 读取views下的index.vue文件
const pageComponents = import.meta.glob("../views/**/index.vue");

const routes = Object.entries(pages).map(([pagePath, meta]) => {
    const path = pagePath.replace("../views", "").replace("/page.ts", "") || "/";
    const name = path.split("/").filter(Boolean).join("-") || "index";
    const component = pagePath.replace("page.ts", "index.vue");

    return {
        name,
        path,
        component: pageComponents[component],
        meta,
    };
});



const router = createRouter({
    routes,
    history: createWebHistory(),
});

export default router;

总结

生成的routes结构符合路由配置,并且也大大减少了我们手动增加代码的工作量。

相关推荐
Hilaku11 小时前
为什么我们用了 Vite 还是构建慢?——真正的优化在这几步
前端·javascript·vite
晓得迷路了13 小时前
栗子前端技术周刊第 84 期 - Vite v7.0 beta、Vitest 3.2、Astro 5.9...
前端·javascript·vite
橘黄的猫2 天前
深入解析 import.meta.url:与 new URL() 的关系及 Vite 中的 base 路径影响
前端·vite
迷你二鹏3 天前
前端之Vite原理
前端·vite
MINO吖3 天前
基于 qiankun + vite + vue3 构建微前端应用实践
vue·vite·微前端·qiankun·single-spa
依旧005 天前
react native webview加载本地HTML,解决iOS无法加载成功问题
react native·ios·html·vite·webview
果粒chenl5 天前
vite构建工具
前端·vite
萌萌哒草头将军6 天前
🚀🚀🚀 rolldown-vite 实践结果记录,它是真的快!⚡️⚡️⚡️
vue.js·react.js·vite
晓得迷路了7 天前
栗子前端技术周刊第 83 期 - Rolldown-Vite、Angular v20、Docusaurus 3.8...
前端·javascript·vite
霸王蟹7 天前
从前端工程化角度解析 Vite 打包策略:为何选择 Rollup 而非 esbuild。
前端·笔记·学习·react.js·vue·rollup·vite