使用 Next.js 15 构建现代化博客网站
Next.js 15 于 2024 年 10 月 21 日正式发布,带来了多项重大更新,包括 React 19 支持、Turbopack 稳定版、异步请求 API 以及缓存语义的破坏性变更。
核心新特性
React 19 支持
Next.js 15 完整支持 React 19,包括:
- React Compiler(实验性): 自动 memoization,减少不必要的重渲染
- 改进的 Hydration 错误处理: 更清晰的错误信息和调试体验
- Actions API: 内置表单处理,无需手动管理 loading/error 状态
Turbopack Dev 稳定版
Turbopack 作为 Rust 编写的下一代打包工具,在 Next.js 15 中达到稳定状态:
- 开发启动速度比 Webpack 快 700 倍(官方基准测试)
- Fast Refresh 近乎即时
- 支持 Server Fast Refresh(Next.js 16.2 新增)
异步请求 API(破坏性变更)
所有依赖请求特定数据的 API 已转为异步:
import { cookies } from 'next/headers';
export async function AdminPanel() {
const cookieStore = await cookies();
const token = cookieStore.get('token');
// ...
}
受影响的 API:cookies、headers、draftMode、params、searchParams。
缓存语义变更
fetch 请求、GET 路由处理程序和客户端导航默认不再缓存,需要显式使用 revalidateTag 或 revalidatePath 进行增量静态再生(ISR)。
静态生成 (SSG)
对于博客这种内容相对固定的网站,静态生成仍是最佳选择:
export async function generateStaticParams() {
const posts = await getAllPosts();
return posts.map((post) => ({ slug: post.slug }));
}
Next.js 15 引入了 Partial Pre-Rendering (PPR),允许在同一页面中混合静态和动态内容,打破了过去静态与动态渲染的边界。
性能优化
- 图片自动优化: 使用 next/image 自动转换为 WebP/AVIF
- 字体优化: next/font 自动托管字体,消除布局偏移
- 代码分割: 基于路由的自动代码分割
- Streaming SSR: 渐进式渲染,首屏更快可见
总结
Next.js 15 让构建博客变得前所未有的简单和高效,React 19 的 Server Components 和 Turbopack 的稳定让开发体验大幅提升。

