解放你的双手,全自动生成路由,支持嵌套路由、路由钩子函数,仅需一个函数

引言

每当我看到前人写的路由文件,我就头大,一页能写上千行路由配置

我受不了了,于是我用 vite 提供的读取文件API,写了个自动生成路由的函数

支持读取 meta.(js | ts) 文件

支持 嵌套路由

实现

如果你只是做普通的单级文件,那么很简单

但是要实现嵌套路由,还是有一定复杂度的

所以这次我就不解说源码,大家可以上 npm 自行查阅

自动生成路由npm链接

安装

bash 复制代码
npm i @jl-org/vite-auto-route

使用

ts 复制代码
import { genRoutes } from '@jl-org/vite-auto-route'
import { createRouter, createWebHistory } from 'vue-router'


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

export default router

仅需一行代码即可使用,甚至有 markdown 的文档

文件规范

/src/views/index.vue作为路由入口

子文件夹可嵌套

meta 必须使用默认导出的方式

复制代码
根文件夹
|-- src
  |-- views
    |-- index.vue
    |-- meta.(ts | js)
    |-- about
      |-- index.vue
      |-- meta.(ts | js)
      |-- nestFloder
        |-- index.vue
        |-- meta.(ts | js)

如上图示例,因为 vite 的工具,无法使用变量来查找目录

所以你的路由需按照配置写,不能自定义配置

/src/views/下建立你的路由文件吧

/src/views/index.vue,会作为路由的首页

/src/views/about/index.vue,会作为首页的子路由

meta 为可选项

如何传递 meta

在同级目录下,创建一个 meta.ts | meta.js 文件

并默认导出一个对象,该对象包含了所有需要传递的 meta 信息。

如何使用嵌套路由 ?

在一个目录下,创建一个新的文件夹,里面包含 index.vue 文件即可

如果使用路由守卫?

meta.ts | meta.js 文件中,添加一个 beforeEnter 函数即可

beforeEnter 会被自动提取出来

例子

如图,我想没人会写这种变态的嵌套路由吧

最终会生成如下图的结构,名字我使用的是大驼峰拼接的

相关推荐
编程牛马姐17 分钟前
独立站SEO流量增长:提高Google排名的优化方法
前端·javascript·网络
NotFound48634 分钟前
实战指南如何实现Java Web 拦截机制:Filter 与 Interceptor 深度分享
java·开发语言·前端
Dontla1 小时前
高基数(High Cardinality)问题介绍(Prometheus、高基数字段、低基数字段)
前端·数据库·prometheus
一 乐2 小时前
医院挂号|基于springboot + vue医院挂号管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·医院挂号管理系统
whuhewei3 小时前
为什么客户端不存在跨域问题
前端·安全
妮妮喔妮3 小时前
supabase的webhook报错
开发语言·前端·javascript
yivifu4 小时前
手搓HTML双行夹批效果
前端·html·html双行夹注
奔跑的卡卡5 小时前
Web开发与AI融合-第一篇:Web开发与AI融合的时代序幕
前端·人工智能
IT_陈寒5 小时前
Redis批量删除的大坑,差点让我加班到天亮
前端·人工智能·后端
帆张芳显5 小时前
智表ZCELL产品V3.6 版发布,新增系统预置右键菜单操作、页签栏操作等功能
前端·canva可画·excel插件