Soybean Admin 使用指南:一套 Vue3 后台管理模板能帮你省掉哪些活
【免费下载链接】soybean-adminA clean, elegant, beautiful and powerful admin template, based on Vue3, Vite7, TypeScript, Pinia, NaiveUI and UnoCSS. 一个清新优雅、高颜值且功能强大的后台管理模板,基于最新的前端技术栈,包括 Vue3, Vite8, TypeScript, Pinia, NaiveUI 和 UnoCSS。项目地址: https://gitcode.com/GitHub_Trending/soy/soybean-admin
Soybean Admin 是一个基于 Vue3、Vite、TypeScript、Pinia 和 UnoCSS 的中后台管理模板。如果你要从零搭一个后台系统,最耗时的往往不是业务逻辑,而是路由、权限、主题、表格这些"地基"——它把这些地基预先铺好了,你直接往上盖楼。下面我按"你开发时到底会卡在哪"的思路,一节一个痛点,讲清它是怎么解的。
先把手写路由表的活甩掉:文件放哪,路由就在哪
传统后台你大概都有过这种经历:新增一个页面,先去router里手写一条路由配置,改个目录名还得同步改路径、改 import、改菜单,漏一处就 404。
Soybean Admin 走的是文件驱动路由:你在views/目录下新建一个.vue文件,路由就自动生成好了。背后的机制是@elegant-router/vue这个插件在构建时扫描目录,把src/router/elegant/routes.ts和对应的类型声明一次性吐出来(文件开头就标着Generated by elegant-router)。
// src/router/elegant/routes.ts(由插件生成,勿手改) { name: 'home', path: '/home', component: 'layout.base$view.home', meta: { title: 'home', icon: 'mdi:monitor-dashboard', order: 1 } }好处是直观:路由结构 = 目录结构,页面挪个位置、删个文件,路由自动跟着变,不用再去路由表里对齐。官方给的路由配置工作量大约能省掉八成。开发阶段跑pnpm gen-route就能重新生成;菜单顺序、图标、是否常驻(constant)这些都在meta里声明,不用碰路由逻辑。
权限三层怎么接:路由级、按钮级一次配齐
后台最容易被吐槽的是权限。模板把权限拆成两层,都集中在store/modules/auth这个 Pinia store 里存着:
// userInfo 里,权限信息就这两个数组 const userInfo = reactive({ userId: '', userName: '', roles: [], // 路由级:决定哪些菜单看得见 buttons: [] // 按钮级:决定哪些操作点得动 })路由级的判断在src/router/guard/route.ts的导航守卫里完成:没登录的跳登录页、登录了但角色不够的跳 403,逻辑一目了然。按钮级更简单,封装了一个useAuth(),里面hasAuth('xxx')去buttons数组里查,模板里配合v-if就能控制"导出""删除"这类按钮对不同的人显隐。
这里有个关键取舍:模板支持静态路由和动态路由两种模式,由.env里的VITE_AUTH_ROUTE_MODE切换。开发时建议用 static——路由由插件生成、超管角色(默认R_SUPER)能看全菜单,方便调试;上线用 dynamic——路由表由后端接口下发,配合fetchGetUserRoutes这类请求按角色裁剪。数据级权限(同一页面看不同店铺的数据)模板不内置,靠你接后端接口时做行级过滤,这层得自己接。
换色、换布局、换语言,业务代码一行不动
这块体验最"爽"。点右上角主题按钮会拉出一个配置抽屉,分外观、布局、通用、预设四个页签,你当场改、当场生效,改完还能一键存成预设(src/theme/preset/下预置了 default、dark、compact、azir 四套)。
底层靠的是 CSS 变量驱动:所有颜色、圆角、阴影都落到src/theme/vars.ts里映射成--primary-color这类变量,运行时改变量就等于换肤,不重新编译。布局同样支持侧边、顶部、混合这几种模式切换,组件都放在src/layouts/modules/global-menu下,小屏会自动降级,移动端适配是默认能力。
国际化也不用自己搭,src/locales/langs/下zh-cn.ts和en-us.ts两套文案,$t()取词,顶栏一个语言开关就能切换,默认跟随本地存储、回退英文。想加第三种语言,照着文件结构补一份就行。
表格、请求、倒计时:这批 hooks 直接拿走
中后台 80% 的页面是表格,Soybean Admin 把它做成了useTable,放在packages/hooks这个独立包里(整个项目是 pnpm monorepo,hooks、axios、color 等都拆成了@sa/*子包,可单独复用)。
const { data, columns, loading, getData } = useTable({ api: fetchList, // 请求函数 pagination: true, // 开启分页 transform: res => res.data, // 把响应拍平成数组 columns: () => getColumns() })它顺手帮你处理了加载态、空状态、列的显隐与左右固定——列的"checked/visible/fixed"状态由columnChecks维护,配合advanced/里的列设置组件,就能做出那种右上角可以自定义列的表格。同类还有useRequest(发请求 + 加载态)、useCountDown(验证码倒计时)、useBoolean、useLoading,基本覆盖了后台里反复造轮子的场景。
别硬套:它适合什么团队,卡在什么边界
选型之前先对一下你的团队画像,能省很多返工:
- 适合:熟 Vue3 组合式 API + TypeScript 的团队,要做权限复杂、模块多的中大型后台,或者要快速出原型、还要兼顾平板端。
- 不适合:团队主力是 React 的(硬迁成本大于收益)、要兼容 IE 的旧项目(官方只支持各浏览器最近两个版本)、追求极致首屏性能的嵌入式场景。
还有两个环境门槛要提前知会组里:Node>=20.19.0、pnpm>=10.5.0。因为它是 monorepo,装依赖必须走 pnpm,用 npm/yarn 会装不起来。
确认对得上之后,跑通最小闭环其实就四步:
git clone https://gitcode.com/GitHub_Trending/soy/soybean-admin cd soybean-admin pnpm i pnpm dev起来之后你会先落在登录页,登录后默认进/home。把views/加个页面、store/modules/auth里按业务补上角色和按钮、theme/vars.ts调成品牌色——一条能用的后台主线,基本就在这三个目录里走完了。
【免费下载链接】soybean-adminA clean, elegant, beautiful and powerful admin template, based on Vue3, Vite7, TypeScript, Pinia, NaiveUI and UnoCSS. 一个清新优雅、高颜值且功能强大的后台管理模板,基于最新的前端技术栈,包括 Vue3, Vite8, TypeScript, Pinia, NaiveUI 和 UnoCSS。项目地址: https://gitcode.com/GitHub_Trending/soy/soybean-admin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考