# react-jsx
**Repository Path**: pidtfork/react-jsx
## Basic Information
- **Project Name**: react-jsx
- **Description**: 这是一个基于 Vite + React 的现代化前端项目模板,集成了多个实用工具和最佳实践。
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-11-30
- **Last Updated**: 2025-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# React Base 项目
这是一个基于 Vite + React 的现代化前端项目模板,集成了多个实用工具和最佳实践。
## 技术栈
- **构建工具:** Vite 6.x
- **前端框架:** React 19.x
- **路由管理:** Wouter 3.x
- **状态管理:** Zustand 5.x
- **数据请求:** SWR + Axios
- **样式解决方案:** TailwindCSS 4.x
- **UI组件:** Radix UI
- **工具库:**
- class-variance-authority:条件样式管理
- clsx & tailwind-merge:类名合并
- lucide-react:图标库
## 项目结构
```
├── src/
│ ├── api/ # API 接口和请求配置
│ ├── assets/ # 静态资源文件
│ ├── components/ # 公共组件
│ ├── hooks/ # 自定义 Hooks
│ ├── lib/ # 工具函数库
│ ├── pages/ # 页面组件
│ ├── routes/ # 路由配置
│ ├── stores/ # 状态管理
│ ├── App.jsx # 应用入口组件
│ └── main.jsx # 应用入口文件
```
## 环境变量配置
项目使用 `.env` 文件进行环境变量配置:
```bash
# 开发环境 (.env.development)
VITE_API_BASE_URL=http://localhost:3000/api
VITE_APP_TITLE=Dev App
# 生产环境 (.env.production)
VITE_API_BASE_URL=https://api.production.com
VITE_APP_TITLE=Production App
# 预发环境 (.env.staging)
VITE_API_BASE_URL=https://api.staging.com
VITE_APP_TITLE=Staging App
```
注意:只有 `VITE_` 前缀的变量会被暴露给客户端代码。
## 开发指南
### 安装依赖
```bash
pnpm install
```
### 添加shadcn组件
```bash
pnpm dlx shadcn@latest add button
```
### 启动开发服务器
```bash
pnpm dev
```
### 构建生产版本
```bash
pnpm build
```
### 预览生产构建
```bash
pnpm preview
```
## 特性
- 🚀 基于 Vite 的快速开发和构建
- 📦 开箱即用的 React 最佳实践
- 🎨 集成 TailwindCSS 的现代化样式解决方案
- 🔄 SWR + Axios 的数据请求方案
- 📱 响应式设计支持
- 🛠 完整的开发工具链和类型支持
- 🌐 灵活的路由配置
- 💾 简单高效的状态管理
## 路径别名
项目配置了 `@` 路径别名,指向 `src` 目录,可以用于简化导入路径:
```javascript
import { Button } from '@/components/ui/button'
```
## 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## `assets` 和 `public` 的区别
在 React/Vite 项目中,`assets` 和 `public` 文件夹都用于存放静态资源,但它们有以下主要区别:
1. 构建处理方式:
- `assets` 文件夹中的文件会经过 Vite 的构建处理:
- 会被打包和优化(如压缩、hash命名等)
- 支持模块导入(可以通过 import 语句引入)
- 适合需要被构建工具处理的资源(如 SVG、图片等)
- `public` 文件夹中的文件会被原样复制到构建目录:
- 不会经过任何构建处理
- 通过绝对路径访问(以 / 开头)
- 适合不需要处理的静态资源(如 robots.txt、favicon.ico 等)
2. 使用场景:
- `assets` 适合:
- 需要在代码中 import 引用的资源
- 需要经过构建优化的资源
- 项目相关的图片、字体等资源
- `public` 适合:
- 不需要构建处理的文件
- 需要保持原始文件名的资源
- 需要通过绝对路径访问的文件
- 大型静态资源(如视频)
3. 引用方式:
- `assets` 中的文件:
```javascript
import logo from '@/assets/logo.svg'
```
- `public` 中的文件:
```html
```
建议:
- 优先使用 `assets` 目录,让构建工具帮助优化资源
- 只在必要时(如第三方静态资源、需要保持原始文件名)才使用 `public` 目录