登录鉴权与路由守卫,未登录跳转 /login,401 自动清理会话并重定向
aero-web — Vite 后台模板
作者 zerolincku
基于 React、TypeScript 与 Vite 的云基础设施管理后台模板,内置登录鉴权、主题切换、国际化、命令面板与分页表格。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
目前有 1 张原始预览,可打开完整图片查看设计细节。
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
light / dark / system 主题模式,附带 5 种强调色可选
en 与 zh-CN 国际化,开发期提供翻译键差异检查与缺失键警告
⌘K / Ctrl+K 命令面板,支持快速搜索跳转
封装本地与服务端两种分页模式的表格,统一加载、空数据与错误行
基于 axios 的统一 API 层,含类型化错误与分页响应模型
模板详细介绍
aero-web 是一个面向云基础设施管理场景的后台前端模板,使用 React、TypeScript、Vite 与 Tailwind CSS 构建。项目定位为可直接运行的前端基础框架,提供仪表盘、主机、区域与可用区、用户、组织、设置等演示页面,并预留了接入真实后端服务的扩展点。
功能层面,模板包含登录鉴权与路由守卫(未登录跳转 /login)、401 自动清理会话并重定向、基于 axios 的统一 API 层与类型化错误、分页数据模型,以及 en / zh-CN 双语国际化,开发期会提示缺失的翻译键。界面侧提供 light / dark / system 三种主题模式与 5 种强调色,并支持 ⌘K / Ctrl+K 命令面板快速搜索。数据表格封装了本地与服务端两种分页模式,统一处理加载、空数据与错误状态,并带有过期响应保护与重试。
工程配置上,模板使用 ESLint、严格模式 TypeScript 与 Vitest 测试,通过环境变量控制 API 基地址、路由模式(hash 或 browser)、部署子路径以及是否使用前端模拟登录。README 中给出了后端成功响应、错误响应与分页响应的约定格式。
需要注意的限制:/infrastructure/vms、/infrastructure/storage-pools、/management/groups、/system/security 目前为占位路由,实际显示 NotFound;默认启用前端模拟登录,接入真实服务需自行替换。
适合你的项目吗?
适用场景
- 搭建云主机、区域与可用区等基础设施管理后台的前端骨架
- 需要登录鉴权、主题切换与多语言的后台项目起步
- 为已有后端服务快速接入带分页表格与命令面板的管理界面
适合人群
- 需要 React + TypeScript + Vite 技术栈的后台前端项目
- 希望以现成页面结构为基础二次开发的团队
- 需要国际化与主题切换能力的内部管理系统
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
环境要求 Node.js >= 20.19.0 与 pnpm >= 8,安装后执行 pnpm run dev,默认地址 http://localhost:5173
- 2
复制 .env.example 为 .env,按需配置 VITE_API_BASE_URL、VITE_ROUTER_MODE、VITE_APP_BASENAME 与 VITE_USE_MOCK_AUTH
- 3
默认 VITE_USE_MOCK_AUTH 为 true 使用前端模拟登录,接入真实后端时需替换并遵循 README 中的响应与分页约定
- 4
使用 useDataTable 时保持 loadPage 引用稳定(模块作用域或 useCallback),过滤或排序变化时更新 queryKey 以回到第一页
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 部分路由为占位页面,实际访问会显示 NotFound,并非完整可用功能。
- 默认启用前端模拟登录,接入真实后端服务时需自行替换该模拟鉴权逻辑。
- 模板仅提供前端基础框架,需自行对接真实后端服务,不包含后端实现。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Placeholder routes (currently NotFound):
README 原文
`VITE_USE_MOCK_AUTH`: whether to use frontend mock login (default `true`)
README 原文
https://github.com/zerolincku/aero-web/blob/main/LICENSEhttps://github.com/zerolincku/aero-web/blob/main/README.mdClear extension points for integrating real backend services
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-09-30。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 85 / 100
- 技术栈
- Vite · React
- 网站类型
- 后台
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-23
- 截图检查日期
- 2026-09-30
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Vite。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: c825f923acd04a4110091163c076e6d71887be5e532972add2df69383b29ae1e
2026-09-30T08:58:54.561Z
来源文件 / 仓库# Aero Cloud Admin Template
English | [简体中文](./README-zh.md)
A modern admin template built with **React 19 + TypeScript + Vite + Tailwind CSS**, including auth routing, theme system, i18n, command palette, paginated lists, and a typed API layer.
## Project Scope
- Ready-to-use frontend foundation for cloud/admin dashboards
- Built-in demo pages: Dashboard / Hosts / Regions & AZs / Users / Orgs / Settings
- Clear extension points for integrating real backend services
## Screenshots
### 1. Dashboard Home

### 2. Hosts List

### 3. Hosts Detail/List Extended View

### 4. Host Detail Page

### 5. Regions & AZs

### 6. Command Palette (Quick Search)

### 7. Theme & Appearance

## Core Features
- Auth guard: unauthenticated users are redirected to `/login`
- Session handling: auto cleanup + redirect on `401`
- API layer: shared axios instance, typed errors, pagination models
- i18n: `en` / `zh-CN` with dev-time key diff and missing-key warning
- Theme system: `light / dark / system` + 5 accent colors
- Command palette: `⌘K` / `Ctrl+K`
- Async data lifecycle: stale-response protection, retry, and refresh state
- Reusable local/server table pagination with consistent loading, empty, and error rows
- Engineering baseline: ESLint + strict TypeScript + Vitest
## Tech Stack
- React 19.2
- TypeScript 6.0
- Vite 8.2
- Tailwind CSS 4.3
- React Router DOM 7
- Zustand 5
- Axios
- react-i18next / i18next
- Vitest + Testing Library
## Quick Start
### 1. Requirements
- Node.js >= 20.19.0
- pnpm >= 8
### 2. Install & Run
```bash
pnpm install
pnpm run dev
```
Default URL: `http://localhost:5173`
### 3. Common Commands
```bash
pnpm run dev # start dev server
pnpm run build # build production assets (tsc + vite build)
pnpm run preview # preview production build
pnpm run lint # run ESLint
pnpm run test # run Vitest
pnpm run test:watch # run Vitest in watch mode
pnpm exec tsc -b # TypeScript project build check
```
## Environment Variables
Copy template:
```bash
cp .env.example .env
```
Variables:
- `VITE_API_BASE_URL`: API base path, default `/api`
- `VITE_ROUTER_MODE`: router mode, `hash` or `browser` (default `hash`)
- `VITE_APP_BASENAME`: deployment sub-path (for example `/admin`)
- `VITE_USE_MOCK_AUTH`: whether to use frontend mock login (default `true`)
## Backend Response Contract
### Success Response
- Response body directly returns business data
### Error Response
```json
{ "code": 1001, "msg": "error message" }
```
### Pagination Response
```json
{
"total": 100,
"page_num": 1,
"page_size": 10,
"data": []
}
```
Frontend support included:
- `PageResponse<T>`
- `apiClient.getPage<T>()`
- `toPaginatedResult()` mapper
- `useDataTable()` local and server pagination modes
Keep `loadPage` stable (declare it at module scope or wrap it in `useCallback`).
Change `queryKey` whenever filters or sorting change so the table reloads page one.
```tsx
const loadItemsPage = useCallback(
async (page: number, pageSize: number) => toPaginatedResult(
await apiClient.getPage<Item[]>('/items', {
page_num: page,
page_size: pageSize,
status: filters.status,
}),
),
[filters.status],
);
const table = useDataTable<Item>({
loadPage: loadItemsPage,
queryKey: filters.status,
});
```
## Route Overview
- `/login`
- `/`
- `/infrastructure/hosts`
- `/infrastructure/hosts/:hostId`
- `/infrastructure/regions-azs`
- `/management/users`
- `/management/orgs`
- `/system/settings`
Placeholder routes (currently NotFound):
- `/infrastructure/vms`
- `/infrastructure/storage-pools`
- `/management/groups`
- `/system/security`
## Key Directory Structure
```text
src/
├── api/
│ ├── axios.ts
│ ├── client.ts
│ ├── error.ts
│ ├── types.ts
│ └── modules/
│ └── auth.ts
├── auth/
│ └── session.ts
├── components/
│ ├── AppErrorBoundary.tsx
│ ├── Layout.tsx
│ ├── Sidebar.tsx
│ ├── ThemeController.tsx
│ └── ui/
│ └── data-table-state.tsx
├── config/
│ ├── app.ts
│ └── router.ts
├── hooks/
│ ├── use-data-table.ts
│ ├── use-fetch-data.ts
│ └── use-mobile.ts
├── i18n/
│ ├── index.ts
│ ├── dev-check.ts
│ └── locales/
├── lib/
│ ├── routes.tsx
│ ├── pagination.ts
│ └── utils.ts
├── pages/
├── store/
│ └── useStore.ts
├── theme/
│ └── palette.ts
└── test/
```
## React Compiler Notes
React Compiler is enabled in `vite.config.ts` through
`reactCompilerPreset()` and `@rolldown/plugin-babel`. No additional compiler
package is required for the default setup.
## License
MIT License. See [LICENSE](./LICENSE).
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

kiaalap
Free admin dashboard template focused on education, online course and school management. Build using Bootstrap…
Vite · 后台

react-vite-admin
This Starter utilizes React, Recoil, React Query, React Hooks, Typescript, Axios And Vite. 全新技术栈的后台管理系统
Vite · 后台

admin-antd-react
React + Ant Design Admin template
Vite · 后台

arco-admin-template
🔥基于 vite构建的react后台模版 使用: acro-design + react-router-dom v6 + mockjs + less,支持国际化,亮色暗色切换等
Vite · 后台

super-admin
React Admin template with multiple cached tabs 🔨... 管理后台多tab缓存标签页解决方案,正在建设中 🔨...
Vite · 后台

react-vite-tailwind-typescript-firebase-auth-template
Good starting point for your next application with React.JS, TypeScript, TailwindCSS, Firebase Auth and Vite.
Vite · 后台
