Upgrade to Pro — share decks privately, control downloads, hide ads and more …

lt.pdf

mimu
November 27, 2023
10

 lt.pdf

mimu

November 27, 2023
Tweet

Transcript

  1. Astro について コンテンツ重視 複雑な UI/UX を実現するための" アプリケーション" ではな く、" コンテンツ"

    を重視する web サイト向け ブログ、ポートフォリオ、コーポレートサイト、LP, ... サーバーファースト CSR ではなく SSR を優先、かつ SPA ではなく MPA View Transition API によって SPA っぽい挙動もできる(SPA モ ードと呼称)
  2. アイランドアーキテクチャ Astro が採用する web アーキテクチャパターン 「Astro アイランド」とは、HTML の静的なページ上にあるイン タラクティブな UI

    コンポーネントを指します。1 つのページに複 数のアイランドが存在でき、アイランドは常に孤立して表示され ます。静的で非インタラクティブな HTML の海に浮かぶ島(アイ ランド)とお考えください。 “ “
  3. Astro の Pros/Cons 前提 筆者は Vanilla JS や jQuery よりも、Vue.js

    や React に触れていた期 間が長いためモダンな UI ライブラリ(以下 React を仮定)贔屓に なってる気がします 一意見として捉えてください
  4. Astro の Pros/Cons Pros 特定のフレームワークに依存しないので、導入ハードルが比較的低 い 素の マークアップ の感覚で書けるので、React に馴染みのない人で

    も取っ付きやすい メンテナンスとエコシステムの成長速度が早い 2 週間おきのマイナーバージョンアップ デフォルトのインテグレーションも充実しており自作もできる
  5. 辛み:クライアントサイドでの処理 jsx のようにイベントハンドラを直接記述できないため、都度 DOM の API を呼ぶ必要がある addEventListener() , querySelector()

    ... 状態管理の仕組みもデフォルトでは備わっていない 公式が推奨している Nano Stores という軽量な状態管理ライブラ リがあるのでそれである程度カバーは可能
  6. 辛み:他の UI ライブラリとの共存 コンポーネントの依存関係 .astro ファイルから .jsx や .vue のコンポーネントを呼ぶことは

    できるが、その逆は出来ない 他の UI ライブラリのコンポーネントを使う場合はできる限りツ リーの末端で使う考慮が必要 LP 案件では最終的に .tsx ファイルが 22 、 .astro ファイルが 3 個という内訳になった()
  7. 辛み:他の UI ライブラリとの共存 画像の取り扱い Astro には組み込みで画像最適化用の <Image /> や <Picture

    /> コ ンポーネントがあるが、他の UI ライブラリのコンポーネントで はそれは当然使えない Astro と React での画像の扱い方の差異の対処に結構苦労した
  8. EOF