# iota-react-vite-admin
**Repository Path**: coder-farmer/iota-react-vite-admin
## Basic Information
- **Project Name**: iota-react-vite-admin
- **Description**: vite admin 后台管理系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-09
- **Last Updated**: 2026-06-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# React Template 项目结构说明
## 项目概述
这是一个基于 **Vite + React + TypeScript + Ant Design** 的后台管理系统模板,适用于中后台管理系统的快速开发。
## 技术栈
| 技术 | 版本 | 用途 |
|------|------|------|
| Vite | ^8.0.10 | 构建工具,提供快速的开发体验 |
| React | ^18.3.1 | UI 框架 |
| TypeScript | ~6.0.3 | 类型系统 |
| Ant Design | ^6.3.7 | UI 组件库 |
| React Router | ^7.14.2 | 路由管理 |
| React Intl | ^7.1.11 | 国际化方案 |
| iota-fetch | ^0.1.1 | HTTP 请求封装库 |
| Sass | ^1.99.0 | CSS 预处理器 |
| iota-utools | ^0.1.7 | 工具函数库 |
---
## 目录结构
```
react-template/
├── public/ # 静态资源目录
│ └── vite.svg # Vite logo
├── src/ # 源代码目录
│ ├── fetch/ # HTTP 请求封装(iota-fetch)
│ │ ├── env.ts # 环境配置
│ │ └── index.ts # 请求模块入口
│ ├── i18n/ # 国际化配置
│ │ ├── locales/ # 语言包
│ │ │ ├── en-US.ts # 英文语言包
│ │ │ └── zh-CN.ts # 中文语言包
│ │ └── index.tsx # i18n Provider 组件
│ ├── pages/ # 页面组件
│ │ ├── 404/ # 404 页面
│ │ ├── Dashboard/ # 仪表盘页面
│ │ ├── Layout/ # 布局组件
│ │ │ ├── Crumbs/ # 面包屑组件
│ │ │ ├── Header/ # 顶部导航
│ │ │ ├── NavTabs/ # 导航标签页
│ │ │ ├── Sider/ # 侧边栏菜单
│ │ │ ├── context.ts # 布局状态上下文
│ │ │ └── index.tsx # 布局主组件
│ │ ├── Login/ # 登录页面
│ │ ├── TablePage/ # 表格示例页面
│ │ │ ├── Table1/ # 表格示例1
│ │ │ └── Table2/ # 表格示例2
│ │ ├── TestPage/ # 测试页面
│ │ └── UserList/ # 用户列表页面
│ ├── router/ # 路由配置
│ │ ├── index.tsx # 路由入口
│ │ ├── router.map.ts # 路由映射
│ │ └── routes.tsx # 路由定义
│ ├── static/ # 静态资源
│ │ └── styles/ # 全局样式
│ │ ├── init/ # 初始化样式
│ │ ├── sass/ # Sass 工具
│ │ └── index.scss # 样式入口
│ ├── theme/ # 主题配置
│ │ ├── context.tsx # 主题上下文
│ │ └── index.ts # 主题配置
│ ├── utils/ # 工具函数
│ │ ├── index.ts # 工具函数入口
│ │ ├── tools.doc.md # 工具文档索引
│ │ └── tools/
│ │ ├── iota-fetch.md # iota-fetch 文档
│ │ └── iota-utools.md # iota-utools 文档
│ ├── App.tsx # 应用根组件
│ ├── main.tsx # 应用入口
│ └── vite-env.d.ts # Vite 类型声明
├── .gitignore # Git 忽略配置
├── README.md # 项目说明
├── eslint.config.js # ESLint 配置
├── index.html # HTML 入口
├── package.json # 依赖配置
├── tsconfig.json # TypeScript 配置
├── tsconfig.app.json # 应用 TS 配置
├── tsconfig.node.json # Node TS 配置
└── vite.config.ts # Vite 配置
```
---
## 模块功能说明
### 1. fetch/ - HTTP 请求模块
**位置**: `src/fetch/`
**功能**: 基于 iota-fetch 的 HTTP 请求模块,提供统一请求方法和请求队列能力。
| 文件 | 功能说明 |
|------|----------|
| `index.ts` | 请求模块入口,导出配置好的 fetch 实例 |
| `env.ts` | 环境配置,定义 baseUrl 等环境变量 |
**使用示例**:
```typescript
import fetch from '@/fetch';
// GET 请求
const data = await fetch.get('/api/users');
// POST 请求
const result = await fetch.post('/api/users', { name: 'John' });
```
---
### 2. i18n/ - 国际化模块
**位置**: `src/i18n/`
**功能**: 基于 react-intl 的国际化方案,支持中英文切换。
| 文件 | 功能说明 |
|------|----------|
| `index.tsx` | I18nProvider 组件,提供国际化上下文 |
| `locales/zh-CN.ts` | 中文语言包 |
| `locales/en-US.ts` | 英文语言包 |
**API**:
- `getCurrentLocale()`: 获取当前语言
- `changeLocale(locale)`: 切换语言
- `getAntdLocale(locale)`: 获取 Ant Design 语言包
**使用示例**:
```typescript
import { useIntl } from 'react-intl';
const Component = () => {
const intl = useIntl();
return
{intl.formatMessage({ id: 'app.title' })}
;
};
```
---
### 3. router/ - 路由模块
**位置**: `src/router/`
**功能**: 基于 React Router v7 的路由配置。
| 文件 | 功能说明 |
|------|----------|
| `index.tsx` | 路由入口组件 |
| `routes.tsx` | 路由定义配置 |
| `router.map.ts` | 路由映射表 |
**路由结构**:
```
/login - 登录页
/ - 布局页(包含侧边栏、头部等)
├── /dashboard - 仪表盘
├── /users - 用户管理
├── /userList - 用户列表
├── /test - 测试页面
└── /table - 表格示例
├── /table/table1
└── /table/table2
* - 404 页面
```
---
### 4. theme/ - 主题模块
**位置**: `src/theme/`
**功能**: Ant Design 6.x 主题配置,支持亮色/暗色主题切换。
| 文件 | 功能说明 |
|------|----------|
| `index.ts` | 主题配置定义(lightTheme/darkTheme) |
| `context.tsx` | ThemeProvider 组件,提供主题上下文 |
**主题配置**:
- `lightTheme`: 亮色主题
- `darkTheme`: 暗色主题
---
### 5. static/styles/ - 样式模块
**位置**: `src/static/styles/`
**功能**: 全局样式和 Sass 工具函数。
| 文件/目录 | 功能说明 |
|-----------|----------|
| `index.scss` | 样式入口文件 |
| `init/reset.scss` | CSS Reset |
| `init/theme.scss` | 主题变量 |
| `sass/_index.scss` | Sass 工具入口 |
| `sass/_variables.scss` | Sass 变量 |
| `sass/_mixins.scss` | Sass Mixins |
| `sass/_functions.scss` | Sass 函数 |
---
### 6. pages/ - 页面模块
**位置**: `src/pages/`
**功能**: 应用的所有页面组件。
#### 6.1 Layout/ - 布局组件
**位置**: `src/pages/Layout/`
**功能**: 后台管理系统的主布局,包含侧边栏、顶部导航、内容区域。
| 组件 | 功能说明 |
|------|----------|
| `Layout` | 主布局组件 |
| `Sider` | 侧边栏菜单 |
| `Header` | 顶部导航栏 |
| `NavTabs` | 导航标签页 |
| `Crumbs` | 面包屑导航 |
| `context` | 布局状态上下文 |
**上下文状态**:
- `isFlod`: 侧边栏折叠状态
- `activeKey`: 当前激活的菜单项
- `openKeys`: 展开的菜单项
#### 6.2 其他页面
| 页面 | 路径 | 功能说明 |
|------|------|----------|
| `Login` | `/login` | 用户登录页面 |
| `Dashboard` | `/dashboard` | 数据仪表盘 |
| `UserList` | `/users`, `/userList` | 用户列表管理 |
| `TestPage` | `/test` | 测试页面 |
| `TablePage` | `/table` | 表格示例页面 |
| `404` | `*` | 404 错误页面 |
---
### 7. utils/ - 工具函数
**位置**: `src/utils/`
**功能**: 工具函数入口,目前主要导出 `iota-utools` 库的功能。
**iota-utools 功能**:
- 类型判断(isArray, isObject, isString 等)
- Storage 操作(localStorage/sessionStorage)
- Storage 监听
- 其他实用工具函数
---
## 配置文件说明
### vite.config.ts
Vite 构建配置,包含:
- React 插件
- Sass 预处理器配置
- 路径别名 `@` 指向 `src`
- 开发服务器端口 8081
### tsconfig.json
TypeScript 配置,包含:
- 应用配置(tsconfig.app.json)
- Node 配置(tsconfig.node.json)
### eslint.config.js
ESLint 配置,用于代码规范检查。
---
## 开发命令
```bash
# 启动开发服务器
yarn dev
# 或
yarn start
# 构建生产版本
yarn build
# 代码检查
yarn lint
# 预览生产构建
yarn preview
# 依赖检查(当前范围)
yarn deps:check
# 依赖全量检查(含 major)
yarn deps:check:full
# 一键升级依赖并安装
yarn deps:update
# 安全审计
yarn deps:audit
```
---
## 快速开始
1. **安装依赖**
```bash
yarn install
```
2. **启动开发服务器**
```bash
yarn dev
```
3. **访问应用**
打开浏览器访问 http://localhost:8081
---
## 依赖使用方法
### 日常安装与运行
```bash
# 安装依赖
yarn install
# 本地开发
yarn dev
# 生产构建
yarn build
```
### 依赖巡检与升级
```bash
# 查看当前可升级依赖
yarn deps:check
# 查看全量升级建议(含 major)
yarn deps:check:full
# 执行升级并重装
yarn deps:update
# 安全审计
yarn deps:audit
```
### 业务依赖接入说明
- iota-fetch: 统一请求层,入口在 src/fetch/index.ts
- iota-utools: 通用工具库,通过 src/utils/index.ts 统一导出
- antd: UI 组件库,主题在 src/theme/index.ts 中集中配置
---
## Sass 使用方法
Sass 工具集中在 src/static/styles/sass 下,入口为 _index.scss。
在 vite.config.ts 中通过 additionalData 全局注入:
```scss
@use "@/static/styles/sass/_index" as *;
```
因此页面或组件的 scss 文件可以直接使用变量、mixin、函数。
### 常用变量
- $primary-color
- $success-color
- $warning-color
- $error-color
- $font-size-base
- $border-radius-base
### 常用 mixin
- @include flex-center
- @include text-ellipsis
- @include multi-ellipsis(2)
- @include responsive(mobile|tablet|desktop)
- @include flexbox(space-between, center)
- @include ellipsis(1|2|3)
- @include scroll(6px, #c6cfd3, #f5f5f5)
### 常用函数
- rem(16px)
- em(18px, 16px)
- strip-unit(16px)
- color-opacity(#000, 0.12)
滚动条样式注意:@include scroll 仅定义外观,需要配合 overflow: auto 或 overflow-y: auto 以及高度约束才会生效。
---
## 扩展建议
1. **状态管理**: 可集成 Zustand、Redux Toolkit 或 Jotai
2. **表单处理**: 可集成 React Hook Form + Zod
3. **数据获取**: 可集成 React Query (TanStack Query)
4. **测试**: 可添加 Vitest + React Testing Library
---
## 依赖治理策略
为保证 admin 解决方案持续可用且不过时,项目采用以下策略:
1. 每半年做一次全量依赖检查(含 major)
2. 每次升级后至少执行 lint + build 验证
3. 版本升级优先遵循生态兼容(React 主版本不随意跨代)
已内置自动巡检工作流:
- 文件位置:.github/workflows/dependency-review.yml
- 执行频率:每年 1 月和 7 月(半年一次)
- 执行内容:outdated、npm-check-updates、audit