Next.js 博客开发实践
Next.js 博客开发实践
在这篇文章中,我将分享如何使用 Next.js 从零开始构建一个功能完善的博客系统。
技术选型
选择 Next.js 作为博客框架有以下几个原因:
服务端渲染 (SSR)
Next.js 提供了出色的 SSR 支持,这对于博客这类内容型网站非常重要:
- 更好的 SEO 表现
- 更快的首屏加载速度
- 社交媒体分享时能正确显示预览
App Router
Next.js 13+ 的 App Router 带来了:
// app/posts/[slug]/page.tsx
export default async function PostPage({
params,
}: {
params: { slug: string };
}) {
const post = await getPostBySlug(params.slug);
return <Article post={post} />;
}
Markdown 处理
我们使用以下库来处理 Markdown:
gray-matter: 解析 frontmatterremark: Markdown 处理器remark-gfm: 支持 GitHub 风格的 Markdown
配置示例
import { remark } from 'remark';
import html from 'remark-html';
import remarkGfm from 'remark-gfm';
const result = await remark()
.use(remarkGfm)
.use(html)
.process(content);
样式设计
采用传统优雅的设计风格:
| 设计元素 | 选择 |
|---|---|
| 字体 | 衬线字体 (Noto Serif) |
| 配色 | 暖色调,米白背景 |
| 间距 | 大量留白 |
| 排版 | 经典书籍式布局 |
性能优化
图片优化
Next.js 的 Image 组件自动处理:
- 图片懒加载
- 响应式尺寸
- WebP 格式转换
代码分割
通过动态导入实现按需加载:
const Comments = dynamic(() => import('@/components/Comments'), {
loading: () => <p>加载评论中...</p>,
});
总结
Next.js 是构建博客的理想选择,它提供了所需的一切功能,同时保持了极佳的开发体验。
下一篇文章,我将介绍如何为博客添加评论系统。
💬 评论区
💡 如何启用评论
当前评论系统使用 Giscus(基于 GitHub Discussions),需要简单配置才能启用。
- 访问 giscus.app
- 使用 GitHub 登录并授权到你的仓库
- 选择你的仓库(需要开启 Discussions)
- 复制生成的配置信息
- 更新
components/Giscus.tsx文件中的配置
优点:免费、无广告、基于 GitHub
要求:GitHub 账号、公开仓库
要求:GitHub 账号、公开仓库