如果您正在寻找一款基于 Next.js 构建的现代博客模板,NextJS Base Blog项目是一个绝佳的起点。它是一个功能齐全的开源博客应用程序,使用Next.js 15、React 19、TypeScript 和 Tailwind CSS 4构建。
该项目提供简洁的架构、现代化的用户界面components和模拟 API 层,使其成为希望快速构建博客而无需设置后端的开发人员的理想选择。
GitHub 代码库:https://github.com/bfotool/nextjs-base-blog
这个项目尤其适用于:
开发者学习Next.js 应用Router
快速搭建博客或内容网站
创建一个Next.js 样板项目
在连接真正的后端 API 之前,先开发 UI 功能。
项目概述
NextJS Base Blog被设计成一个可用于生产环境的博客模板,具有现代内容网站中常见的许多功能。
该项目包括:
首页包含精选文章
博客文章页面
类别筛选
全文检索
分页
目录
相关帖子
深色/浅色主题
该项目最有趣的部分之一是模拟 API 层,它使用Axios 拦截器模拟 REST API 。这使得开发人员无需后端服务器即可构建和测试应用程序。
主要特点
首页
首页包含几个重要版块:
特色英雄帖
类别筛选器
博客文章网格
分页导航
该布局完全响应式,并针对桌面和移动设备进行了优化。
博客文章页面
每篇文章都可通过动态路径访问:
/blog/[slug]
博客文章页面包含以下几个实用功能:
全文内容
自动生成目录
预计阅读时间
社交分享按钮
相关帖子建议
这些功能有助于打造类似于现代博客平台的专业阅读体验。
类别页面
用户可以按类别浏览帖子。
示例路线:
/blog/category/[slug]
此功能允许读者浏览特定主题下的内容。
搜索功能
该项目包含一个内置搜索页面:
/search
搜索支持:
实时结果
去抖动输入
搜索标题、摘录和标签
这提高了易用性,并帮助用户快速找到相关内容。
关于我们和联系我们页面
该项目还包括专业博客上常见的其他页面。
关于页面
“关于”页面介绍:
团队
项目故事
核心价值观
联系页面
“联系我们”页面包含一个完全验证过的表单,其中包含:
表单验证
弹出式通知
成功和错误反馈
支持深色模式
该博客支持深色模式和浅色模式。
功能包括:
自动系统主题检测
手动切换
使用localStorage实现主题持久化
虚拟 API 层(无后端开发)
该项目最有趣的部分之一是其伪造 API 系统。
该应用程序不调用真正的服务器,而是使用Axios 拦截器来模拟 REST API 响应。
伪造 API 的工作原理
Axios实例创建于:
src/services/api-client.ts
启用环境变量后:
NEXT_PUBLIC_USE_MOCK_API=true
请求在到达网络之前就被拦截。
模拟处理程序返回具有真实延迟(200-600 毫秒)的虚假响应。
响应行为与真实的 API 响应类似。
模拟数据存储在:
src/mocks/
包括:
示例帖子
作者
类别
可用的 API 端点
模拟 API 支持多个端点:
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /帖子 | 分页博客文章 |
| 得到 | /帖子/精选 | 精选文章 |
| 得到 | /posts/:slug | 单篇博客文章 |
| 得到 | /分类 | 类别列表 |
| 得到 | 作者 | 作者列表 |
| 邮政 | /接触 | 提交联系表格 |
技术栈
该项目采用了现代化的前端技术栈。
| 层 | 技术 |
|---|---|
| 框架 | Next.js 15 |
| UI库 | React 19 |
| 语言 | TypeScript |
| 造型 | Tailwind CSS 4 |
| HTTP客户端 | Axios |
| 图标 | Lucide React |
| 绒毛 | ESLint |
| 格式化 | 更漂亮 |
此堆栈提供:
强型安全
可维护架构
现代开发者体验
项目结构
项目结构遵循简洁且可扩展的架构。
src/
├── app/
├── components/
├── services/
├── mocks/
├── contexts/
├── hooks/
├── types/
└── lib/
应用程序Router
该app目录包含所有应用程序路由。
例如:
app/page.tsx
app/blog/[slug]/page.tsx
app/search/page.tsx
这遵循了Next.js新版本中引入的Next.js 应用Router架构。
成分
用户界面components按逻辑分组:
components/layout
components/common
components/blog
这种结构使 UI 代码更有条理,更易于维护。
服务层
该services文件夹包含与 API 相关的逻辑:
API客户端配置
邮政服务
类别服务
联系表单服务
这一层将数据获取逻辑与用户界面components分离,从而提高了可扩展性。
安装指南
要求
开始之前,请确保您已准备好:
Node.js 18 或更高版本
npm、yarn 或 pnpm
克隆仓库
git clone https://github.com/bfotool/nextjs-base-blog.git
cd nextjs-base-blog
安装依赖项
npm install
配置环境变量
cp .env.example .env
启动开发服务器
npm run dev
打开浏览器并访问:
http://localhost:3000
可用脚本
| 命令 | 描述 |
|---|---|
| npm run dev | 启动开发服务器 |
| npm run build | 创建生产版本 |
| npm run start | 启动生产服务器 |
| npm run lint | 运行 ESLint |
| npm 运行格式 | 使用 Prettier 格式化代码 |
| npm 运行类型检查 | 运行 TypeScript 检查 |
切换到真正的 API
如果要将项目连接到真正的后端 API,请按照以下步骤操作。
步骤 1:禁用模拟 API
编辑.env文件:
NEXT_PUBLIC_USE_MOCK_API=false
步骤 2:设置 API 基本 URL
NEXT_PUBLIC_API_BASE_URL=https://your-api-server.com
步骤 3:匹配数据类型
请确保您的后端 API 返回的数据与以下 TypeScript 定义匹配:
src/types/index.ts
无需进行其他代码更改。
自定义内容
模拟内容可以在内部进行编辑:
src/mocks/posts.ts
src/mocks/categories.ts
src/mocks/authors.ts
这样一来,开发者就可以快速定制演示内容。
自定义主题和用户界面
全球风格体现在:
src/app/globals.css
该项目使用了以下字体:
DM Sans
JetBrains Mono
您可以根据设计需求修改样式或替换字体。
结论
NextJS Base Blog是一个功能强大且现代化的入门模板,用于使用 Next.js 构建博客。
该项目的主要优势包括:
现代技术栈
清洁建筑
用于开发的模拟 API
轻松与真正的后端 API 集成
响应式用户界面和现代功能
如果您正在使用 Next.js 构建博客、开发者网站或内容平台,此存储库可以为您节省大量开发时间。



