Open4

Astro のフロントエンドフレームワークとしての位置付け

t0yoheit0yohei

Astro を触ってみたので、フロントエンドフレームワークとしての位置付けをメモ
公式: https://docs.astro.build/ja/getting-started/
サンプル: https://github.com/t0yohei/astro-sample/tree/main

Astro、一応 MPA だけどやっていることは SPA フレームワークとかに近くて(デプロイ時に build しておいて、サーバーにリクエストが来たら基本 build 済みのファイルを返すだけ。サーバー側で処理を走らせたりはしない)、位置付けが結構難しい

t0yoheit0yohei
  • ルーティングにサーバーへのリクエストが必要か?
    • 不要: SPA
    • 必要: MPA(Astro, Rails)
  • レンダリング(HTMLの生成)のタイミング?
    • ビルド時(Astro)
    • リクエスト毎にブラウザで(SPA)
    • リクエスト毎にサーバーで(Raiis)
  • リクエスト時にサーバーで処理を実行するか(サーバーに実行プロセス(nodejs, ruby)が必要か)?
    • 実行しない(Astro, SPA)
    • 実行する(Rails, SPA の SSR)
t0yoheit0yohei

余談: 静的サイトホスティングに適するもの

  • ルーティングにサーバーへのリクエストが必要か?: 不要・必要 どちらでも
  • レンダリング(HTMLの生成)のタイミング?: ビルド時・リクエスト毎にブラウザで
  • リクエスト時にサーバーで処理を実行するか: 実行しない

要は nginx などの web サーバーだけで捌けるか、実行プロセスが必要かで大別できそう

t0yoheit0yohei

ユースケース

要は、阿部寛のホームページ のような高速なサイトが作り方によっては作れるよっていうフレームワークなので、 JS による動的な処理があまり発生しないサイトであれば、高速に作っても良いかもしれない。