跳到主要内容

Web 前端

Web 前端运行在不可控的浏览器与网络之上:解析 HTML、执行 JS、合成样式、处理输入与辅助功能。本篇以 React + TypeScript 为主要参照(与常见文档站、产品站一致),原则可迁移到其他框架。

平台分层(浏览器内)

关注点笔记
文档语义 HTML、SEO、渐进增强先结构后样式
样式布局、主题、响应式设计 token、减少全局泄漏
行为事件、状态、数据获取边界处校验 API 响应
资产图片、字体、代码分割现代格式(AVIF/WebP)、loading=lazy

React 应用结构(默认)

区域职责
路由URL ↔ 视图;数据 loader 与错误边界
组件展示 vs 容器;组合优于继承
状态服务器状态 vs UI 状态分离
数据层fetch/RTK Query/React Query;缓存与失效策略

服务器状态(远程真相):用查询库管理 stale time、重试、去重。
UI 状态(局部交互):useState / context 小范围;避免全局 store 泛滥。

提示

默认数据流:父传 props,子回调上报;跨树用 context 或轻量 store;只有确需时才上全局状态库。

TypeScript 与 API 边界

  • API 响应在边界用 schema 校验(zod、valibot)再进入组件树
  • 组件 props 显式类型;列表项 key 稳定
  • 严格 tsconfigstrict, noUncheckedIndexedAccess(按项目渐进)

架构 · 边界 一致:不要把后端 DTO 形状泄漏到每一层组件。

性能清单

做法
首屏路由级 code splitting、关键 CSS
渲染避免匿名内联函数导致子树重渲染;memo 有测量再用
列表虚拟滚动(长列表)
网络HTTP 缓存头、压缩、减少瀑布请求
图片响应式 srcset、占位、LCP 优先

测量:Lighthouse、Web Vitals(LCP、INP、CLS);真机 4G 抽样。

可访问性(a11y)

  • 交互控件用原生元素或补全 role / 键盘 / 焦点
  • 对比度与字号跟随系统(配合 指南 的写作清晰原则)
  • 表单:label 关联、aria-invalid、错误文案可读
  • 动效:尊重 prefers-reduced-motion

测试金字塔(前端)

层级工具倾向覆盖
单元Vitest/Jest + RTL纯函数、hook、小组件
集成RTL表单流、路由
E2EPlaywright关键路径、跨浏览器抽样

CI 中 E2E 可 nightly,PR 跑冒烟子集——见 CI/CD

与本知识库站点

本站基于 Docusaurus + React:MDX 即文档组件化;i18n 路径 /docs/en/docs 分离。改主题或侧边栏时保持构建与英文镜像同步。

相关篇章