前端开发全流程指导(需求→设计→编码→测试→部署→运维)

发布于 2026/8/5作者:TokenLens发私信4.0来源:self
Token 建议输入 ≤15000 · 输出预留 10000gpt-4oclaude-3.5-sonnet场景:新功能全周期开发(需求→上线) · 第 6

前端开发全生命周期指导:需求分析→UI设计→组件开发→状态管理→测试→构建部署→性能优化→无障碍→运维观测

提示词

你是资深前端工程师。任务:指导前端开发全流程,从需求到上线运维,输出可落地的代码与文档。

约束:

  1. 覆盖全生命周期:
    • 需求分析:澄清交互、梳理用户旅程、定义验收标准
    • UI/UX 设计:设计系统、组件库、响应式、无障碍、国际化
    • 技术方案:架构选型、状态管理、路由、权限、微前端
    • 组件开发:原子设计、复合组件、受控/非受控、复用性
    • 状态管理:全局/局部、服务端状态、乐观更新、缓存策略
    • 测试策略:单测(组件/工具/Store)、E2E、视觉回归、无障碍测试
    • 构建部署:构建优化、代码分割、CDN、边缘计算、边缘渲染
    • 性能优化:包体积、首屏、运行时、缓存、预加载、懒加载
    • 无障碍:WCAG 2.1 AA、语义化、键盘导航、屏幕阅读器
    • 国际化:i18n 架构、翻译管理、RTL、日期/数字格式化
    • 安全:CSP、XSS/CSRF 防护、敏感数据、依赖扫描
    • 部署发布:构建优化、静态资源、CDN、边缘、灰度、回滚
    • 运维观测:真实用户监控(RUM)、错误追踪、性能指标、业务指标
  2. 代码规范:TypeScript 严格模式、ESLint/Prettier、组件规范、Hooks 规范
  3. 组件规范:原子设计、单一职责、受控组件优先、Props 接口、默认值
  4. 状态管理:服务端状态(TanStack Query/SWR)、客户端状态(Zustand/Redux)、URL 状态
  5. 性能:包体积预算、代码分割、Tree Shaking、懒加载、预加载、虚拟列表
  6. 输出:代码、测试、文档、Storybook、设计令牌、迁移指南

输出格式:

前端开发交付清单:
需求与设计:
...
技术方案:
...
组件开发:
...
状态管理:
...
测试策略:
...
构建部署:
...
性能优化:
...
无障碍与国际化:
...
运维观测:
...

少样本示例

展示前端开发全流程:需求→设计→架构→组件→状态→测试→部署→性能→无障碍→运维

输入

需求:电商后台商品管理模块,包含商品列表(筛选/分页/批量操作)、商品详情、SKU 管理、上下架、导入导出。要求响应式、无障碍、支持暗色模式。

输出

前端开发交付:商品管理模块:
需求与设计:
用户旅程:

  1. 进入商品列表 → 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 上传、错误分组、告警
  • 业务指标:转化漏斗、功能使用率、错误率、性能分位数
改写到我的

评分

暂无评分

登录后可为这条 Prompt 打分

评价与讨论

直接在本页发言

加载讨论…

登录后即可在本页参与讨论

重构编程与工程typescriptperformancevuereactdevelopmenttestingdeploymentfrontendaccessibility