迁移到 Next.js

历经多次思想斗争，最终我将整个网站迁移到以 Next.js 为主的技术栈。

为什么要迁移到 Next.js

根据 Hello world 文章中所述，我的网站之前完全是纯静态 HTML 驱动的。这种方式在网站内容不多的时候还能接受，但是随着网站内容的增加，维护起来就越来越麻烦。每一个 CSS 样式的变动都会带来灾难式的维护体验。

很久之前，我就已经学过 React.js，但出于复杂度控制，我没有把它用到我的网站上。但是随着网站内容的增加，我不得不考虑使用 React.js 来管理网站的内容。为了防止出现 React.js 项目选型的复杂度控制问题，我选择了 Next.js。

迁移过程

看着自己的网站，然后仿造出一个一模一样的网站真是一种奇特的体验，至少在失去耐心之前。所以这一迁移过程持续了很长时间。Next.js 13 的 App Router 还改变了原定的就地渲染 Markdown 计划，现在必须将文章内容单独做一个后端 API，不过这增强了网站的可扩展性。

2024 年 4 月 13 日补充：现在已经转向读取本地 Markdown 文章然后静态生成的方法了，想来以前还是 naive 了。有了后端，维护起来更麻烦了。

迁移中我还采用了 Tailwind CSS 技术，避免了以前纠结 CSS 类应该取什么名字的问题。

2024 年 4 月 13 日补充：现在使用 CSS Module 技术。CSS Module 和 Tailwind CSS 相比互有优劣，但我认为 CSS Module 更加接近原汁原味的 CSS 编写方式。

迁移后的网站

整体上没有大的改动，只有一些细节上的修改。

对于中国大陆用户来说，网站的访问速度应该会变得更慢了😂，这是因为现在网站托管在 Cloudflare Pages 上。感谢 Cloudflare 提供的免费服务。

2024 年 4 月 13 日补充：现在部署在 Vercel，仍然使用 CloudFlare 做 CDN（对国内来说依然是减速 😂）。

原文：迁移到 Next.js