Astro 与 React Bits 的静态博客实践

教程1,980 字

  • #Astro
  • #React
  • #React Bits

这篇文章记录本站的搭建过程。目标很简单:静态、快速、有一些恰到好处的动画。

为什么是 Astro

Astro 默认输出零 JavaScript 的静态页面,只有标记为 island 的组件才会在客户端激活。对于博客这种内容为主的站点,这是非常合适的默认值。

React Bits 组件

React Bits 提供了一批高质量动画组件。本站使用了 OptionWheelScrollExpandAnimatedListLineSidebar。它们通过 shadcn 风格的 registry 直接复制源码进入项目,按需引入依赖。

npx shadcn@latest add https://reactbits.dev/r/OptionWheel-TS-TW.json

常驻布局与动画

左右两侧的常驻面板使用固定定位,主页滚动时从各自方向滑入;文章页则把左侧导航切换为目录。动画全部使用 CSS 与少量 React 状态完成,避免引入额外的动画库。

内容组织

文章数据放在 src/lib/posts.ts,包含标题、日期、分类、标签、字数、封面和正文 HTML。后续可以平滑迁移到 Astro Content Collections 或 Markdown。