Skip to content

wq1308786830/blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Russell Blog - React 19 & Next.js 16 重构版

基于 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 - 代码高亮

✨ React 19 & Next.js 16 优化特性

React 19 新特性

  • use() Hook - 处理 Promise 和 Context
  • React Compiler - 自动优化渲染性能
  • Server Components - 服务端组件优化
  • Suspense 改进 - 更好的异步处理
  • memo 优化 - 智能组件缓存

Next.js 16 优化

  • 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

🎯 重构亮点

1. 类型安全改进

  • 严格的 TypeScript 配置
  • 完整的类型定义
  • 运行时类型检查

2. 性能优化

  • React 19 memo 优化
  • 组件懒加载
  • 图片预加载
  • 代码分割

3. 用户体验

  • 错误边界处理
  • 加载状态管理
  • 无障碍访问支持
  • 响应式设计

4. 开发体验

  • 热重载优化
  • ESLint + Prettier
  • 自动类型推导
  • 性能监控

🌟 核心组件

ArticleList

  • 使用 React 19 memo 优化
  • 虚拟滚动支持
  • 智能预取

ArticleDetail

  • Markdown 渲染优化
  • 代码高亮
  • 图片懒加载

TechImageModal

  • Portal 渲染
  • 键盘导航
  • 无障碍支持

ErrorBoundary

  • 优雅错误处理
  • 错误恢复机制
  • 开发调试信息

📊 性能指标

  • FCP < 1.5s (First Contentful Paint)
  • LCP < 2.5s (Largest Contentful Paint)
  • FID < 100ms (First Input Delay)
  • CLS < 0.1 (Cumulative Layout Shift)

🔄 迁移指南

从旧版本迁移

  1. 更新依赖到 React 19 + Next.js 16
  2. 替换 isomorphic-unfetch 为原生 fetch
  3. 使用新的类型定义
  4. 添加错误边界
  5. 启用性能监控

兼容性

  • Node.js >= 18.0.0
  • 现代浏览器支持
  • 移动端优化

🚀 部署

PM2 部署

pm2 start ecosystem.config.js --env production --no-daemon

Vercel 部署

项目已优化支持 Vercel 平台一键部署。

📝 更新日志

v0.3.0 (2024-01-19)

  • ✨ 升级到 React 19 + Next.js 16
  • 🚀 性能优化和类型安全改进
  • 🎨 组件重构和代码优化
  • 🛠️ 开发工具链升级

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

About

next blog ssr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors