Hello Astro

Hello Astro

博客框架的选择过程

折腾博客这件事我已经不是第一次干了,早在去年9月份开始就已经开始陆陆续续尝试各种框架了,比如说 WordPress、Hexo、Hugo、Typecho、Halo、VuePress、VitePress… 也使用过 Next.js 和 Nuxt 来搭建博客。每一个框架都有各自的优点和缺点,但是使用下来,都感觉不够理想。

现成主题,总感觉不够个性

无论是哪个框架都有现成的主题可以使用,基本按照文档改改配置文件就可以使用了。使用别人做好的主题虽然很方便,但是好看的主题就那么几个,多逛逛几个博客,发现使用的都是同一个主题,自然就不是很想用了。此外,更别提有些主题功能不够,还不知道怎么按自己的想法去定制。

对我来说,博客不仅是放置文章的地方,更是一个可以不断折腾、持续优化的个人空间,能体现自己的审美和技术成长。

于是,我开始认真考虑那些能让我从搭建开始,逐步参与开发的方案。

部署维护和扩展的问题

WordPress 和 Halo 以及 Typecho 都需要服务器,自己可能承担不了服务器的费用,就没有考虑。更别说还没有我心动的主题以及性能和安全问题。

Hexo 和 Hugo 虽然轻量,但扩展性和灵活性相对较弱,动态功能实现起来也有限。

最终入围:Astro、Next.js 和 Nuxt

Next.js 和 Nuxt 虽然功能强大,社区生态丰富,但它们的门槛并不低。作为前端新手,我甚至连 JavaScript 都尚未熟练掌握,使用基于 React 或 Vue 的框架对我而言存在较大的学习曲线。

直到我偶然通过 Wappalyzer 浏览器插件发现 Astro,一个此前从未接触过的静态网站生成器。经过研究发现,它的文档不仅十分友好,还有详细的博客搭建教程。此外,Astro 特别强调性能,提出“尽可能减少 JS 代码”的理念,非常适合对网站速度敏感的用户。

Astro 的组件机制简单易懂,即使只会 HTML 和 CSS,我也能轻松搭建博客。而且遇到需要 JS 支持的场景,可以直接复制文档中的代码即可运行起来,非常顺畅。更让我放心的是,Astro 支持逐步引入 Vue、React 等组件,这意味着未来我掌握这些框架之后,也可以方便地融入其中,而无需推倒重来。

关于性能的比较

通过了解和实践,我发现 Astro 相较于 Next.js 和 Nuxt 最大的优势就在于它生成的网站所需加载的 JavaScript 明显更少。Next.js 和 Nuxt 是基于完整的 JavaScript 框架,默认生成的网站包含更多的运行时 JS,可能导致首屏加载和交互的延迟。Astro 则采用了“零 JS 默认模式”,只有在必要时才加载 JS,因此网站性能更为出色。

此外,Astro 还内置了许多博客必备的功能,如原生的 Markdown 支持、RSS 订阅、站点地图(Sitemap)以及自动的图片优化。这使得博客内容发布和维护更加轻松,并且提升了 SEO 效果。

博客的现状

目前,我的博客各页面已经基本搭建完成,具备了基础功能,比如主题切换、响应式汉堡菜单、简易目录导航,以及新增的动漫页和游戏页。不过,样式和组件的一些细节仍需优化,有不少文章暂时下架,准备重新用我自己的风格去创作,而不是机械地依赖 AI 生成内容。

无论框架多么先进,工具多么强大,博客的灵魂始终在于内容。只有持续地产出真正属于自己的原创内容,才是真正拥有一个博客,而非仅仅停留在“搭建完成”的表面。

评论