- Astro 支持引入 react 组件和 vue 组件,但通常情况下简单的 ssr 输出直接用 astro 自己的组件方式,另外 next.js 用户量很大,就算引用也是引用 react 组件。
- 只有 /page 目录下的 .astro 组件支持页面路由,jsx 是不支持直接路由的,意味着你要使用 react 组件,得用 .astro 来包装。
- astro ssr 模式支持简单的 http 方法处理,但是不支持 websocket 方式,引入 websocket 需要引入 ws 模块,且包装 http server,可以不使用 express 框架,但是 ssr 时需要指定静态文件路径。这样还是直接用 express 算了,指定静态路径方便,然后 astro 的 http 处理方法都可看作 express 的中间件。astro 在 dev 阶段会通过 4321 端口的 websocket 来通知页面刷新,这样就与你的业务 websocket 逻辑冲突,所以要修改这个热更新通知端口。
- astro 虽然支持加载 .mdx 文档,但这个也是编译时支持,即使时 ssr 模式,他也是编译时支持,在 server render 时 .mdx 早已经转成了 html,直接输出了,所以他不是运行时编译输出。
- 但是 next.js 支持运行时通过 next-mdx-remote 包解析 .mdx 文档,并输出。
- 在 astro 可以引入 react 组件,然后 react 组件导入 next-mdx-remote 模块来运行时解析 .mdx 文档,所以 .mdx 文档的内容是可以运行时远程获取的。
- astro 自带的
import.meta.env.
使用环境变量,并不支持从命令行环境变量读取,只能把环境变量定义在.env.production
里。 - astro:db 模块比较鸡肋,用这个模块来操作 sqlite,或者 push 到远程 sqlite 的功能比较鸡肋,直接使用
drizzle-orm
即可,到时方便迁移到其他数据库。
暂无评论