Open4
Astro のフロントエンドフレームワークとしての位置付け
Astro を触ってみたので、フロントエンドフレームワークとしての位置付けをメモ
公式: https://docs.astro.build/ja/getting-started/
サンプル: https://github.com/t0yohei/astro-sample/tree/main
Astro、一応 MPA だけどやっていることは SPA フレームワークとかに近くて(デプロイ時に build しておいて、サーバーにリクエストが来たら基本 build 済みのファイルを返すだけ。サーバー側で処理を走らせたりはしない)、位置付けが結構難しい
- ルーティングにサーバーへのリクエストが必要か?
- 不要: SPA
- 必要: MPA(Astro, Rails)
- レンダリング(HTMLの生成)のタイミング?
- ビルド時(Astro)
- リクエスト毎にブラウザで(SPA)
- リクエスト毎にサーバーで(Raiis)
- リクエスト時にサーバーで処理を実行するか(サーバーに実行プロセス(nodejs, ruby)が必要か)?
- 実行しない(Astro, SPA)
- 実行する(Rails, SPA の SSR)
余談: 静的サイトホスティングに適するもの
- ルーティングにサーバーへのリクエストが必要か?: 不要・必要 どちらでも
- レンダリング(HTMLの生成)のタイミング?: ビルド時・リクエスト毎にブラウザで
- リクエスト時にサーバーで処理を実行するか: 実行しない
要は nginx などの web サーバーだけで捌けるか、実行プロセスが必要かで大別できそう
ユースケース
要は、阿部寛のホームページ のような高速なサイトが作り方によっては作れるよっていうフレームワークなので、 JS による動的な処理があまり発生しないサイトであれば、高速に作っても良いかもしれない。