# react-template-vite
**Repository Path**: GQ-og/react-template-vite
## Basic Information
- **Project Name**: react-template-vite
- **Description**: react + vite的项目模板
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-22
- **Last Updated**: 2025-11-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vite + React 全栈工程化模板
## 功能特性
- ✅ 基于Vite 6的极速开发体验
- ✅ React 19最新特性支持
- ✅ Redux Toolkit状态管理
- ✅ React Router v7路由系统
- ✅ 移动端/PC自适应布局
- ✅ TypeScript类型安全
- ✅ UnoCSS原子化样式
- ✅ 完善的代码规范检查(Lint)
- ✅ Git提交规范(Husky)
## 技术栈
- ⚡ Vite 6.3
- ⚛️ React 19
- 🌀 TypeScript 5.7
- 🧰 Redux Toolkit 2.7
- 🛣️ React Router 7.5
- 🎨 UnoCSS原子化CSS
- 📦 PNPM 9包管理
## 快速开始
```bash
# 安装依赖
pnpm install
# 开发模式
pnpm dev
# 生产构建
pnpm build
# 代码规范检查
pnpm lint
```
## 项目结构
```
├── src
│ ├── store # Redux状态管理
│ │ ├── features # 功能模块
│ │ └── store.ts # Store配置
│ ├── constant # 常量配置
│ │ └── router.tsx # 路由配置
│ ├── components # 公共组件
│ ├── pages # 页面组件
│ ├── utils # 工具函数
│ └── styles # 全局样式
```
## 路由配置
采用React Router v7的createBrowserRouter实现:
```tsx
// src/constant/router.tsx
export default createBrowserRouter([
{
path: '/',
element: ,
children: [
{
path: 'pageA',
element: ,
loader: ({ request }) => {
// 路由守卫示例
if (!store.getState().auth.isLoggedIn) {
throw redirect('/login')
}
return null
},
},
{ path: 'pageB', element: },
],
},
])
```
## 状态管理
Redux Toolkit配置示例:
```ts
// src/store/store.ts
export const store = configureStore({
reducer: {
auth: authReducer,
counter: counterReducer,
},
middleware: (getDefaultMiddleware) => [
...getDefaultMiddleware({
serializableCheck: false,
}),
loggerMiddleware,
],
devTools: process.env.NODE_ENV !== 'production',
})
// 类型安全的RootState和AppDispatch
type RootState = ReturnType
type AppDispatch = typeof store.dispatch
```
## 部署指南
1. 生产构建:`pnpm build`
2. 推荐服务器配置:
- Nginx开启Gzip压缩
- 配置缓存策略
- 启用HTTP/2
3. 容器化部署示例:
```Dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
RUN pnpm install && pnpm build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
```
### css
内置 UNOCSS 与 SCSS 与 POSTCSS
如果你想使用自适应大小,可以使用 rpx 做 css 单位
## 代码规范
- ESLint:JavaScript/TypeScript规范检查
- Stylelint:CSS/SCSS样式检查
- Prettier:代码自动格式化
- Commitlint:Git提交信息规范
## 许可证
MIT License