这是 Astro 初学者最容易犯的概念错误之一。
你要非常清楚:
.astro 文件不是拿来管理浏览器长生命周期状态的。
它更像:
每次布展时执行一次的展馆蓝图所以在 .astro 里,你通常会做这些事:
- 读取
Astro.props - 读取
Astro.url - 读取
Astro.locals - 获取 CMS / 数据库 / 内容集合的数据
- 输出最终 HTML
而不是做这些事:
- 写浏览器常驻
useState - 在
.astro里直接搞复杂局部状态机 - 期待它像 React 组件那样自己在浏览器里反复响应
如果你需要真正的前端状态与交互,正确路线是:
- 原生
<script> - UI framework component +
client:*
这条边界一旦清晰,Astro 就不会显得“怪”。