基于 React 19 和 Next.js 16 最佳实践重构的个人博客项目。
- React 19.2.3 - 使用最新的 React 特性
- Next.js 16.1.3 - App Router + Server Components
- TypeScript 5 - 严格类型检查
- Tailwind CSS 3 - 原子化 CSS
- React Markdown - Markdown 渲染
- React Syntax Highlighter - 代码高亮
- ✅ use() Hook - 处理 Promise 和 Context
- ✅ React Compiler - 自动优化渲染性能
- ✅ Server Components - 服务端组件优化
- ✅ Suspense 改进 - 更好的异步处理
- ✅ memo 优化 - 智能组件缓存
- ✅ App Router - 新的路由系统
- ✅ Server Actions - 服务端操作
- ✅ 缓存策略 - 智能缓存管理
- ✅ Image 优化 - WebP/AVIF 支持
- ✅ Bundle 分析 - 性能监控
- ✅ 组件懒加载 - React.lazy + Suspense
- ✅ 图片优化 - Next.js Image 组件
- ✅ 代码分割 - 自动代码分割
- ✅ 预取优化 - 智能预取策略
- ✅ 错误边界 - 完善的错误处理
├── app/ # Next.js 16 App Router
│ ├── layout.tsx # 根布局 (Server Component)
│ ├── page.tsx # 首页 (Client Component)
│ ├── category/ # 分类页面
│ └── globals.css # 全局样式
├── components/ # React 组件
│ ├── ArticleList.tsx # 文章列表 (memo 优化)
│ ├── ArticleDetail.tsx # 文章详情 (memo 优化)
│ ├── TechImageModal.tsx # 图片模态框 (Portal)
│ ├── ErrorBoundary.tsx # 错误边界
│ ├── PerformanceMonitor.tsx # 性能监控
│ └── Category/ # 分类组件
├── services/ # 服务层
│ ├── request.ts # 网络请求 (原生 fetch)
│ ├── blog.ts # 博客 API
│ └── types.ts # 类型定义
├── types/ # TypeScript 类型
│ └── index.ts # 统一类型导出
└── public/ # 静态资源
# 安装依赖
pnpm install
# 开发模式
pnpm dev
# 构建项目
pnpm build
# 启动生产服务
pnpm start
# 代码检查
pnpm lint
# 类型检查
pnpm type-check
# Bundle 分析
pnpm analyze- 严格的 TypeScript 配置
- 完整的类型定义
- 运行时类型检查
- React 19 memo 优化
- 组件懒加载
- 图片预加载
- 代码分割
- 错误边界处理
- 加载状态管理
- 无障碍访问支持
- 响应式设计
- 热重载优化
- ESLint + Prettier
- 自动类型推导
- 性能监控
- 使用 React 19 memo 优化
- 虚拟滚动支持
- 智能预取
- Markdown 渲染优化
- 代码高亮
- 图片懒加载
- Portal 渲染
- 键盘导航
- 无障碍支持
- 优雅错误处理
- 错误恢复机制
- 开发调试信息
- FCP < 1.5s (First Contentful Paint)
- LCP < 2.5s (Largest Contentful Paint)
- FID < 100ms (First Input Delay)
- CLS < 0.1 (Cumulative Layout Shift)
- 更新依赖到 React 19 + Next.js 16
- 替换
isomorphic-unfetch为原生 fetch - 使用新的类型定义
- 添加错误边界
- 启用性能监控
- Node.js >= 18.0.0
- 现代浏览器支持
- 移动端优化
pm2 start ecosystem.config.js --env production --no-daemon项目已优化支持 Vercel 平台一键部署。
- ✨ 升级到 React 19 + Next.js 16
- 🚀 性能优化和类型安全改进
- 🎨 组件重构和代码优化
- 🛠️ 开发工具链升级
MIT License
欢迎提交 Issue 和 Pull Request!