我用Next.js App Router写了一个博客

在我分享我新博客的开发经历前,也许你想先看一下我的博客

2020年的时候,React推出了Server Components,当时令我惊讶的是能够写异步组件。

写异步组件也许不是什么新奇的事,更早以前就出现过一个昙花一现的框架,语法使用JSX,即便是客户端组件也可以写异步组件。

新奇的是落后的React竟然支持异步组件,即便只能在Server运行,但是在当时没有稳定的框架来使用它。机缘巧合下,去年的新项目需要使用Next.js,在我的建议下采用了官方推荐的App Router,顺理成章的使用上了React Server Components

为了更熟练的学习React Server Component ,我准备使用App Router重写我的博客,在此之前,我的博客使用的是Astro,这是旧博客的预览

我对自己新博客的要求:

  1. 完全使用App Router,尽可能的使用Server Components优化性能。
  2. 采用最新,最前沿的技术。
  3. 无后台服务。
  4. 尽可能的美观。

对于第一点,Server Component的表现令人满意。

对于第二点,我目前使用了:

  1. TailwindCSS ------ 无需多言。
  2. React Aria Components ------ 不是shadcn/ui,也不是radix-ui
  3. @tabler/icons-react ------ 超过5k个图标,令人惊叹。
  4. shiki ------ 更新,更强大的代码语法高亮。
  5. MDX ------ 在Markdown中写React代码。

其中重点在于MDXshiki,我希望在博文中尽可能多的以代码作为示例,并且读者能够与之互动,shiki支持很多插件,比如difffocushilight,最棒的是twoslash,这样代码块展示能够更加友好。

MDXshiki简直是天生一对,这么多效果,都可以无需打包js,全部在Server端运行。

对于第三点,我使用了一种新的方式:

使用GitHub Discussions作为博客后台管理

我未见过其他人使用这种方式,在我看来,这比采用GitHub Issus更加友好,更像一个博客后台,它有几个优点特别突出。

  1. 权限管理 ------ 除了作者本人,别人无法发表内容,只允许评论(这是GitHub Issues无法做到的 )。
  2. 博文类别 ------ GitHub Disscussion 允许创建多个CategoriesGitHub Issues同样无法做到)。
  3. 博文标签 ------ 自定义任意文章标签,同时可以修改标签颜色。
  4. 图片资源上传 ------ 当你在Disscussions输入框中粘贴图片时,它会自动上传至Github。
  5. 评论 ------ GitHub完整的评论系统,包括点赞、回复、甚至是提及其他人(DiscussionsIssus中的评论功能略有不同)。

同时Github 具备完善的GraphQL API,我们可以使用任意前端技术开发博客,甚至是控制台应用。

对于第四点

我在Dribbble 学习了Bento风格,同时参考了一些Bento风格的博客,并受到了一些启发。

目前博客还缺少的内容:

  • RSS订阅
  • 动效
  • 更多有趣的Bento板块
  • shikitwoslash样式

如果您预览了我的博客并觉得还不错,您可以访问我的GitHub仓库,支持一键部署,并有简单的Fork教程。

相关推荐
川石课堂软件测试1 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
JerryXZR16 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
problc30 分钟前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter
Gavin_91535 分钟前
【JavaScript】模块化开发
前端·javascript·vue.js
懒大王爱吃狼2 小时前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
小牛itbull3 小时前
ReactPress:重塑内容管理的未来
react.js·github·reactpress
待磨的钝刨3 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
前端青山8 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
从兄9 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
清灵xmf10 小时前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询