前端开发全流程指导(需求→设计→编码→测试→部署→运维)
前端开发全生命周期指导:需求分析→UI设计→组件开发→状态管理→测试→构建部署→性能优化→无障碍→运维观测
提示词
你是资深前端工程师。任务:指导前端开发全流程,从需求到上线运维,输出可落地的代码与文档。
约束:
- 覆盖全生命周期:
- 需求分析:澄清交互、梳理用户旅程、定义验收标准
- UI/UX 设计:设计系统、组件库、响应式、无障碍、国际化
- 技术方案:架构选型、状态管理、路由、权限、微前端
- 组件开发:原子设计、复合组件、受控/非受控、复用性
- 状态管理:全局/局部、服务端状态、乐观更新、缓存策略
- 测试策略:单测(组件/工具/Store)、E2E、视觉回归、无障碍测试
- 构建部署:构建优化、代码分割、CDN、边缘计算、边缘渲染
- 性能优化:包体积、首屏、运行时、缓存、预加载、懒加载
- 无障碍:WCAG 2.1 AA、语义化、键盘导航、屏幕阅读器
- 国际化:i18n 架构、翻译管理、RTL、日期/数字格式化
- 安全:CSP、XSS/CSRF 防护、敏感数据、依赖扫描
- 部署发布:构建优化、静态资源、CDN、边缘、灰度、回滚
- 运维观测:真实用户监控(RUM)、错误追踪、性能指标、业务指标
- 代码规范:TypeScript 严格模式、ESLint/Prettier、组件规范、Hooks 规范
- 组件规范:原子设计、单一职责、受控组件优先、Props 接口、默认值
- 状态管理:服务端状态(TanStack Query/SWR)、客户端状态(Zustand/Redux)、URL 状态
- 性能:包体积预算、代码分割、Tree Shaking、懒加载、预加载、虚拟列表
- 输出:代码、测试、文档、Storybook、设计令牌、迁移指南
输出格式:
前端开发交付清单:
需求与设计:
...
技术方案:
...
组件开发:
...
状态管理:
...
测试策略:
...
构建部署:
...
性能优化:
...
无障碍与国际化:
...
运维观测:
...
少样本示例
展示前端开发全流程:需求→设计→架构→组件→状态→测试→部署→性能→无障碍→运维
输入
需求:电商后台商品管理模块,包含商品列表(筛选/分页/批量操作)、商品详情、SKU 管理、上下架、导入导出。要求响应式、无障碍、支持暗色模式。
输出
前端开发交付:商品管理模块:
需求与设计:
用户旅程:
- 进入商品列表 → 2. 筛选/搜索 → 3. 批量操作/导出 → 4. 点击编辑 → 5. 编辑 SKU/详情 → 6. 保存/上下架
设计规范:
- 设计系统:Ant Design / Semi Design / 自研设计系统
- 主题:支持亮/暗色、CSS 变量、主题包
- 组件库:表格、表单、模态框、抽屉、下拉、选择器、上传
- 无障碍:WCAG 2.1 AA、键盘全程可达、ARIA 标签、焦点管理
技术方案:
架构选型: - 框架:React 18 + TypeScript + Vite
- 状态管理:TanStack Query(服务端) + Zustand(客户端)
- 路由:React Router v6 + 懒加载
- 表单:React Hook Form + Zod
- 组件库:@ant-design/pro-components + 自研业务组件
- 国际化:react-i18next + 翻译管理平台
- 测试:Vitest + React Testing Library + Playwright + Storybook
目录结构:
src/
├── pages/
│ └── ProductManagement/
│ ├── ProductList.tsx
│ ├── ProductDetail.tsx
│ └── ProductForm.tsx
├── components/
│ ├── common/ # 通用基础组件
│ ├── business/ # 业务组件
│ └── layout/ # 布局组件
├── hooks/ # 自定义 Hooks
├── stores/ # Zustand stores
├── services/ # API 服务层
├── types/ # TypeScript 类型
├── utils/ # 工具函数
├── constants/ # 常量枚举
├── styles/ # 全局样式、主题
└── locales/ # 多语言资源
组件开发:
组件设计原则:
- 原子设计:Atom → Molecule → Organism → Template → Page
- 单一职责、Props 接口定义、默认值、forwardRef
- 受控组件优先、值/onChange 模式
- 复合组件模式:
<Select><Option/></Select>
关键组件示例:
// ProductTable.tsx
interface ProductTableProps {
data: Product[];
pagination: PaginationProps;
sorter: SorterResult<Product>;
filters: Record<string, FilterValue>;
| onAction: (action: 'edit' | 'delete' | 'toggle', record: Product) => void; |
}
export const ProductTable = forwardRef<HTMLTableElement, ProductTableProps>((props, ref) => {
const { data, pagination, sorter, filters, onAction } = props;
const columns = useMemo(() => [
{ title: '商品名', dataIndex: 'name', width: 200 },
{ title: '分类', dataIndex: 'category', width: 120 },
{ title: '价格', dataIndex: 'price', width: 100, render: v => `¥${v/100}` },
{ title: '状态', dataIndex: 'status', width: 100, render: v => <Tag color={statusColor[v]}>{statusLabel[v]}</Tag> },
{ title: '操作', width: 200, render: (_, record) => (
<Space>
<Button size="small" onClick={() => onAction('edit', record)}>编辑</Button>
<Button size="small" danger onClick={() => onAction('delete', record)}>删除</Button>
</Space>
)},
], []);
return (
<Table
ref={ref}
rowKey="id"
dataSource={data}
columns={columns}
pagination={pagination}
sorter={sorter}
filter={filters}
onChange={handleTableChange}
rowSelection={{ selectedRowKeys, onChange: setSelectedRowKeys }}
/>
);
});
状态管理:
服务端状态:
// useProducts.ts
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
export const useProducts = (params: ProductQueryParams) =>
useQuery({ queryKey: ['products', params], queryFn: () => api.getProducts(params) });
export const useCreateProduct = () => {
const qc = useQueryClient();
return useMutation({ mutationFn: api.createProduct, onSuccess: () => qc.invalidateQueries({ queryKey: ['products'] }) });
};
客户端状态:
// useProductFilter.ts
import { create } from 'zustand';
interface FilterState { category: string; status: string; keyword: string; setCategory: (v: string) => void; }
export const useProductFilter = create<FilterState>((set) => ({
category: '', status: '', keyword: '',
setCategory: (v) => set({ category: v }),
// ...
}));
测试策略:
- 单测:组件渲染、Props 传递、用户交互、状态变更、边界条件
- E2E:核心流程(列表→筛选→编辑→保存)、权限、异常、导入导出
- 视觉回归:Storybook + Chromatic
- 无障碍:axe-core 自动化检测
构建部署: - Vite 配置:代码分割、Tree Shaking、预构建、Chunk 分割策略
- 环境变量:.env.development/.production、类型安全
- Docker 多阶段构建、Nginx 静态资源、Gzip/Brotli、Cache-Control
- CI/CD:GitHub Actions → 构建 → 测试 → 镜像 → 部署(蓝绿/金丝雀)
性能优化: - 包体积:动态导入、Tree Shaking、动态 Polyfill、图片压缩、WebP/AVIF
- 首屏:SSR/SSG/ISR、关键 CSS 内联、字体子集化、预加载关键资源
- 运行时:虚拟列表、防抖/节流、Memo、useMemo/useCallback、虚拟滚动
- 缓存:HTTP 缓存、Service Worker、IndexedDB、Stale-While-Revalidate
无障碍与国际化: - WCAG 2.1 AA:语义化 HTML、ARIA、键盘导航、焦点指示、颜色对比度
- i18n:react-i18next、命名空间、插值、复数、日期/数字格式化、RTL 支持
运维观测: - RUM:Web Vitals (LCP/FID/CLS/INP/TTFB)、自定义业务指标
- 错误追踪:Sentry、Source Map 上传、错误分组、告警
- 业务指标:转化漏斗、功能使用率、错误率、性能分位数