字
字节笔记本
2026年2月22日
Hooks-Admin:基于 React 18 的现代化后台管理框架
本文介绍 Hooks-Admin,一个基于 React 18 技术栈的现代化后台管理框架。该项目采用最新的前端技术,提供了完整的企业级后台管理解决方案,帮助开发者快速搭建高效、美观的管理系统。
项目简介
Hooks-Admin 是一个开源的后台管理框架,由 HalseySpicy 开发维护。截至目前,该项目在 GitHub 上已获得 2k+ stars 和 438 个 forks。项目完全采用 TypeScript 开发,提供了类型安全的代码支持。
该项目基于 React 18 生态系统构建,集成了 Redux 状态管理、React Router v6 路由管理、Vite2 构建工具以及 Ant Design UI 组件库,为开发者提供了一套完整的企业级后台管理解决方案。
核心特性
- 最新技术栈:采用 React 18、React-Router v6、React-Hooks、TypeScript、Vite2 开发
- 高效构建工具:使用 Vite2 作为项目开发和打包工具,配置了 Gzip 打包、跨域代理、打包预览等功能
- 完整 TypeScript 支持:整个项目集成 TypeScript,提供完整的类型支持
- 状态管理方案:集成 Redux,支持 immer、react-redux、redux-persist 开发
- 双版本状态管理:master 分支使用 redux,redux-toolkit 分支使用 redux-toolkit
- Axios 二次封装:使用 TypeScript 对 Axios 进行二次封装,包含错误拦截、常用请求封装、全局请求 Loading、取消重复请求等功能
- 主题与国际化:支持 Antd 组件大小切换、暗黑/灰色/色弱模式、i18n 国际化
- 权限管理:使用自定义高阶组件进行路由权限拦截(403 页面)、页面按钮权限配置
- 路由功能:支持 React-Router v6 路由懒加载配置、菜单手风琴模式、无限级菜单、多标签页、面包屑导航
- 代码规范:使用 Prettier 统一格式化代码,集成 Eslint、Stylelint 代码校验规范
- Git 提交规范:使用 husky、lint-staged、commitlint、commitizen、cz-git 规范提交信息
技术栈
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.x | 核心框架 |
| React Router | v6 | 路由管理 |
| TypeScript | 4.x+ | 类型系统 |
| Vite | 2.x | 构建工具 |
| Ant Design | 4.x/5.x | UI 组件库 |
| Redux / Redux Toolkit | 4.x / 1.x | 状态管理 |
| Axios | 0.x | HTTP 请求 |
| Less | - | CSS 预处理器 |
安装指南
前置要求
- Node.js >= 16
- npm 或 yarn 或 pnpm
克隆项目
bash
# 使用 Gitee 克隆
git clone https://gitee.com/HalseySpicy/Hooks-Admin.git
# 或使用 GitHub 克隆
git clone https://github.com/HalseySpicy/Hooks-Admin.git安装依赖
bash
cd Hooks-Admin
npm install
# 如果 npm install 失败,可尝试使用淘宝镜像
npm install --registry=https://registry.npm.taobao.org启动开发服务器
bash
npm run dev
# 或
npm run serve构建项目
bash
# 开发环境
npm run build:dev
# 测试环境
npm run build:test
# 生产环境
npm run build:pro项目结构
text
Hooks-Admin
├─ .vscode # vscode 推荐配置
├─ public # 静态资源文件(忽略打包)
├─ src
│ ├─ api # API 接口管理
│ ├─ assets # 静态资源文件
│ ├─ components # 全局组件
│ ├─ config # 全局配置项
│ ├─ enums # 项目枚举
│ ├─ hooks # 常用 Hooks
│ ├─ language # 语言国际化
│ ├─ layouts # 框架布局
│ ├─ routers # 路由管理
│ ├─ redux # redux store
│ ├─ styles # 全局样式
│ ├─ typings # 全局 ts 声明
│ ├─ utils # 工具库
│ ├─ views # 项目所有页面
│ ├─ App.tsx # 入口页面
│ ├─ main.tsx # 入口文件
│ └─ env.d.ts # vite 声明文件
├─ .editorconfig # 编辑器配置(格式化)
├─ .env # vite 常用配置
├─ .env.development # 开发环境配置
├─ .env.production # 生产环境配置
├─ .env.test # 测试环境配置
├─ .eslintrc.js # Eslint 校验配置
├─ .prettierrc.js # prettier 配置
├─ .stylelintrc.js # stylelint 样式格式化配置
├─ CHANGELOG.md # 项目更新日志
├─ commitlint.config.js # git 提交规范配置
├─ index.html # 入口 html
├─ LICENSE # 开源协议文件
├─ package.json # 依赖包管理
├─ tsconfig.json # typescript 全局配置
└─ vite.config.ts # vite 配置代码规范
项目集成了完整的代码规范工具链:
bash
# ESLint 检测代码
npm run lint:eslint
# Prettier 格式化代码
npm run lint:prettier
# Stylelint 格式化样式
npm run lint:stylelint
# 提交代码(会自动执行 lint:lint-staged 命令)
npm run commit在线预览
- 在线演示:https://hooks.spicyboy.cn
- Pro 付费版本:https://pro.spicyboy.cn
项目截图
登录页
项目提供亮暗两种主题模式的登录页面,界面简洁美观。
首页
首页展示数据仪表盘,支持多种数据可视化组件,整体布局清晰合理。
浏览器支持
| IE | Edge | Firefox | Chrome | Safari |
|---|---|---|---|---|
| 不支持 | 最近 2 个版本 | 最近 2 个版本 | 最近 2 个版本 | 最近 2 个版本 |
推荐使用 Chrome 最新版浏览器进行本地开发。
后台接口
项目后台接口完全采用 Mock 数据,支持以下 Mock 平台:
- FastMock:https://www.fastmock.site/
- EasyMock:https://mock.mengxuegu.com/
开源协议
本项目基于 MIT 协议开源。
项目链接
分享: