Takoyaki
Web Developer
この記事では、「Astro」について解説していきます。私も最近学習したので、理解をより深めるべく、アウトプットしたいと思います。
Astroは、高速なウェブサイトを簡単に作るためのウェブフレームワークで、静的サイトジェネレーター(SSG:Static Site Generator)の一つです。
コンテンツ中心のウェブサイトの構築に適しています。
MPA/SPAとは、アプリケーションのアーキテクチャ(構造)を示す用語です。それぞれの特徴を解説します。
お弁当屋さんに例えるならば、あらかじめ全メニュー分のお弁当を作っておいて、のり弁当の注文があったら、用意しておいたのり弁のお弁当箱を渡す。
次に、「やっぱり幕の内弁当がいい!」と注文があったら、また用意しておいた幕の内弁当のお弁当箱を渡すイメージです。
お弁当屋さんに例えるならば、空のお弁当箱だけ用意しておいて、のり弁当の注文があったらお弁当箱の中にのり弁を作る。
次に、「やっぱり幕の内弁当がいい!」と注文があったら、すでにのり弁が入っていたお弁当箱の中身を、幕の内弁当に作り替えるイメージです。
SSG/SSR/CSRとは、レンダリング(HTMLを生成する)手法を示す用語です。それぞれの特徴を解説します。
お弁当屋さんに例えるならば、お弁当を事前に作っておき、お客さんが来たらそれを売るイメージです。
お弁当屋さんに例えるならば、お客さんが来たら、裏の厨房で注文のお弁当を完成させて、それを売るイメージです。
お弁当屋さんに例えるならば、お客さんが来たら、お客さんのお弁当箱の中で、注文のお弁当を完成させるイメージです。(全く現実的ではないw)
前述の通り、SSG(Static Site Generation:静的サイト生成)を採用しているため、ユーザーがアクセスする前から事前にHTMLが生成されており、高速な初期表示ができます。
お弁当屋さんの例も挙げましたが、事前にお弁当を作ってショーケースに並べておけば、お客さんが来たらすぐに提供できますよね!
MPAとSSGを採用しているため、Googleなどの検索エンジンが、サイトの内容を読み取りやすい構造になっています。
SPAのように、JavaScriptで後から内容を生成する方式と比べて、検索エンジンが内容を理解しやすいという訳です。
また、検索エンジンは、表示速度の速いサイトを高く評価するため、高速なパフォーマンスを発揮するAstroは評価されやすくなります。
Astroは「検索エンジンに見つけてもらいやすいサイト」を作るのが得意なフレームワークと言えるでしょう。
ReactやVueなどの他のフレームワークと組み合わせて開発ができます。
例えば、同じプロジェクトの中で:
というような、混ぜ合わせた開発が可能です。
また、アイランドアーキテクチャ(Islands Architecture)と呼ばれる技術により、動的な要素が必要な部分だけを、指定したフレームワークで動的に表示できます。
「大半はSSG(静的)だけど、ここはCSR(動的)にしたい!」ということが可能ということです。
(私はReactやVueなどの経験がないため、あまりピンと来ていません…汗)
とりあえず、Astroは「いろいろなフレームワークのいいとこ取り」ができる、柔軟なフレームワークであると言えますね。
HTMLとCSSの知識があれば、割と簡単にAstroでの開発を始められます。
私自身、まともにAstroの勉強を始めてから2〜3日ほどで、このポートフォリオを作成することができました。
公式のドキュメントが充実していたので、学習手順が分かりやすかったです。
初めてのAstroブログ(Astroチュートリアル)
たにぐちまことさんのUdemyも参考にしました。
ちゃんと学ぶ、Astro(たにぐちまことさんUdemy)
Astroは、高速なウェブサイトを簡単に作るためのウェブフレームワークです。
主な特徴は以下の5つです:
特に、ブログやドキュメントサイトなど、静的コンテンツが中心のウェブサイトを作成する場合に、Astroは非常に効果的な選択肢となります。
初心者にも扱いやすく、かつ高度な機能も備えているため、幅広いニーズに対応できるフレームワークと言えるでしょう。