前端开发
本框架采用了模块化的前端开发模式,旨在提高代码的可维护性和可扩展性。
1. 模块结构
如果您正在开发一个新的业务模块(例如 products),请将其放置在 src/modules/ 目录下。该目录下的模块支持自动路由和菜单注册。
请遵循以下目录结构:
text
src/modules/products/
├── components/ # 模块私有组件
├── Products.tsx # 主页面
├── ProductDetail.tsx # 详情页
├── routes.tsx # 路由配置文件 (自动注册)
└── menu.ts # 菜单配置文件 (自动注册)2. 创建页面组件
在模块目录下创建页面文件,文件命名遵循大驼峰。
tsx
// src/modules/products/Products.tsx
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
export function Products() {
return (
<div className="space-y-6">
<h1 className="text-3xl font-bold">产品管理</h1>
<Card>
<CardHeader>
<CardTitle>产品列表</CardTitle>
</CardHeader>
<CardContent>
{/* 功能实现代码 */}
</CardContent>
</Card>
</div>
);
}3. 配置模块路由
在模块目录下创建 routes.tsx,导出名为 routes 的变量。系统会自动将其注册到主路由中。
tsx
// src/modules/products/routes.tsx
import { Route } from 'react-router-dom';
import { Products } from './Products';
export const routes = (
<>
<Route path="products/list" element={<Products />} />
{/* 其他路由... */}
</>
);注意:无需在
src/App.tsx中手动导入。
4. 配置模块菜单
在模块目录下创建 menu.ts,导出名为 menu 的变量。系统会自动将其添加到侧边栏。
typescript
// src/modules/products/menu.ts
import { PackageIcon } from '@heroicons/react/24/outline';
export const menu = {
title: '产品管理',
icon: PackageIcon,
children: [
{ title: '产品列表', path: '/products/list' },
],
};注意:无需在
src/components/menu.ts中手动导入。
5. 开发规则总结
- 目录位置:必须放置在
src/modules/目录下。 - 自动注册导出名:路由必须导出为
routes,菜单必须导出为menu。 - 页面命名:遵循大驼峰(如
Products.tsx)。 - 组件位置:模块私有组件存放在模块目录下的
components/。 - 路径规范:页面的访问路径通常为
/{module}/{page}。