迁移到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(对国内来说依然是减速 😂)。