software-frontend

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Frontend Engineering

前端工程实践

Production-ready patterns for modern web applications.
Modern Best Practices (January 2026): Next.js 16 + Turbopack, React 19.x + Server Components, TypeScript 5.9+ (strict), Tailwind CSS v4, TanStack Query, Zustand, Vitest (browser mode).
Breaking Changes: Next.js 16 Upgrade Guide
Shared release gates:
../software-clean-code-standard/assets/checklists/frontend-performance-a11y-checklist.md
If you use React Server Components (RSC), treat security advisories as blocking: see
data/sources.json
(React RSC advisories).
适用于现代Web应用的生产就绪型实践方案。
2026年1月现代最佳实践:Next.js 16 + Turbopack、React 19.x + Server Components、TypeScript 5.9+(严格模式)、Tailwind CSS v4、TanStack Query、Zustand、Vitest(浏览器模式)。
通用发布检查项:
../software-clean-code-standard/assets/checklists/frontend-performance-a11y-checklist.md
如果使用React Server Components (RSC),请将安全公告视为阻塞项:详见
data/sources.json
(React RSC安全公告)。

Quick Reference

快速参考

TaskToolCommand
Next.js AppNext.js 16 + Turbopack
npx create-next-app@latest
Vue AppNuxt 4
npx nuxi@latest init
Angular AppAngular 21
ng new
Svelte AppSvelteKit 2.49+
npm create svelte@latest
React SPAVite + React
npm create vite@latest
UI Componentsshadcn/ui
npx shadcn@latest init
任务工具命令
Next.js 应用Next.js 16 + Turbopack
npx create-next-app@latest
Vue 应用Nuxt 4
npx nuxi@latest init
Angular 应用Angular 21
ng new
Svelte 应用SvelteKit 2.49+
npm create svelte@latest
React 单页应用Vite + React
npm create vite@latest
UI 组件shadcn/ui
npx shadcn@latest init

Workflow

工作流程

  1. Pick a framework using the decision tree.
  2. Start from a matching template in
    assets/
    .
  3. Implement feature-specific patterns from
    references/
    .
  4. Treat accessibility and performance as release gates (shared checklist above).
  1. 使用决策树选择框架。
  2. assets/
    目录中选择匹配的模板开始开发。
  3. references/
    目录中实现特定功能的实践模式。
  4. 将无障碍适配和性能优化作为发布的必要检查项(见上方通用检查清单)。

Framework Decision Tree

框架决策树

text
Project needs:
|-- React ecosystem?
|   |-- Full-stack + SEO -> Next.js 16
|   |-- Progressive enhancement -> Remix
|   `-- Client-side SPA -> Vite + React
|
|-- Vue ecosystem?
|   |-- Full-stack -> Nuxt 4
|   `-- SPA -> Vite + Vue 3.5+
|
|-- State management?
|   |-- Server data -> TanStack Query
|   |-- Global client -> Zustand
|   `-- WARNING: DECLINING: Redux
|
`-- Styling?
    |-- Utility-first -> Tailwind CSS v4
    `-- WARNING: DECLINING: CSS-in-JS
text
项目需求:
|-- 是否采用React生态?
|   |-- 全栈 + SEO -> Next.js 16
|   |-- 渐进式增强 -> Remix
|   `-- 客户端单页应用 -> Vite + React
|
|-- 是否采用Vue生态?
|   |-- 全栈应用 -> Nuxt 4
|   `-- 单页应用 -> Vite + Vue 3.5+
|
|-- 状态管理需求?
|   |-- 服务端数据 -> TanStack Query
|   |-- 全局客户端状态 -> Zustand
|   `-- 注意:已逐步淘汰: Redux
|
`-- 样式方案?
    |-- 优先工具类 -> Tailwind CSS v4
    `-- 注意:已逐步淘汰: CSS-in-JS

Next.js 16 Changes

Next.js 16 变更

middleware.ts -> proxy.ts

middleware.ts 重命名为 proxy.ts

bash
undefined
bash
undefined

Run codemod

运行代码转换工具

npx @next/codemod@canary upgrade latest
npx @next/codemod@canary upgrade latest

Or manually rename

或手动重命名

mv middleware.ts proxy.ts

```typescript
// After (Next.js 16)
export function proxy(request: Request) {
  // ... logic
}
mv middleware.ts proxy.ts

```typescript
// 升级后(Next.js 16)
export function proxy(request: Request) {
  // ... 逻辑代码
}

Cache Components (
"use cache"
)

缓存组件(
"use cache"

typescript
export default async function Page() {
  "use cache";
  const data = await fetchData();
  return <ProductList data={data} />;
}
typescript
export default async function Page() {
  "use cache";
  const data = await fetchData();
  return <ProductList data={data} />;
}

React Compiler

React 编译器

typescript
// next.config.ts
const nextConfig: NextConfig = {
  experimental: {
    reactCompiler: true,
  },
};
typescript
// next.config.ts
const nextConfig: NextConfig = {
  experimental: {
    reactCompiler: true,
  },
};

Performance Budgets

性能预算

MetricTarget
LCP<= 2.5s
INP<= 200ms
CLS<= 0.1
TTFB< 600ms
指标目标值
LCP<= 2.5s
INP<= 200ms
CLS<= 0.1
TTFB< 600ms

Deployment Checklist

部署检查清单

Pre-Deployment

部署前检查

  • npm run build
    - no errors
  • npm run lint
    - zero ESLint errors
  • vitest run
    - all tests passing
  • Bundle size within budget
  • Environment variables set
  • npm run build
    - 无错误
  • npm run lint
    - ESLint 零错误
  • vitest run
    - 所有测试通过
  • 包体积在预算范围内
  • 环境变量已配置

Accessibility

无障碍适配

  • axe DevTools - zero critical issues
  • Keyboard navigation works
  • Color contrast >= 4.5:1
  • Screen reader tested
  • axe DevTools - 无严重问题
  • 键盘导航正常工作
  • 颜色对比度 >= 4.5:1
  • 屏幕阅读器测试通过

SEO

SEO 优化

  • Metadata configured
  • sitemap.xml generated
  • robots.txt configured
  • 元数据已配置
  • sitemap.xml 已生成
  • robots.txt 已配置

Resources

资源

ResourcePurpose
references/fullstack-patterns.mdServer/client components, data fetching
references/vue-nuxt-patterns.mdVue 3, Nuxt, Pinia
references/angular-patterns.mdAngular 21, signals
references/svelte-sveltekit-patterns.mdSvelte 5, SvelteKit
references/remix-react-patterns.mdRemix loaders, actions
references/operational-playbook.mdArchitecture, security
资源用途
references/fullstack-patterns.md服务端/客户端组件、数据获取
references/vue-nuxt-patterns.mdVue 3、Nuxt、Pinia
references/angular-patterns.mdAngular 21、信号系统
references/svelte-sveltekit-patterns.mdSvelte 5、SvelteKit
references/remix-react-patterns.mdRemix 加载器、动作
references/operational-playbook.md架构设计、安全

Templates

模板

FrameworkTemplate
Next.jsassets/nextjs/template-nextjs-tailwind-shadcn.md
Vue/Nuxtassets/vue-nuxt/template-nuxt4-tailwind.md
Angularassets/angular/template-angular21-standalone.md
Svelteassets/svelte/template-sveltekit-runes.md
框架模板
Next.jsassets/nextjs/template-nextjs-tailwind-shadcn.md
Vue/Nuxtassets/vue-nuxt/template-nuxt4-tailwind.md
Angularassets/angular/template-angular21-standalone.md
Svelteassets/svelte/template-sveltekit-runes.md

Related Skills

相关技能

SkillPurpose
software-backendBackend API
dev-api-designREST/GraphQL
software-code-reviewCode review
ops-devops-platformCI/CD
技能用途
software-backend后端API开发
dev-api-designREST/GraphQL设计
software-code-review代码评审
ops-devops-platformCI/CD流程