Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
lt.pdf
Search
mimu
November 27, 2023
0
13
lt.pdf
mimu
November 27, 2023
Tweet
Share
More Decks by mimu
See All by mimu
npm/Yarn/pnpmゆるふわ解説
mmrakt
0
1.1k
Type Script型パズル(?)超入門
mmrakt
0
61
まだWebpackで消耗してるの?
mmrakt
0
68
Featured
See All Featured
Statistics for Hackers
jakevdp
799
220k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Product Roadmaps are Hard
iamctodd
PRO
54
11k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
710
Designing for Performance
lara
609
69k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
Astro は優秀だが万能ではない(かも)
背景 Astro を個人ブログや LP 案件で使用してみたのでその所感についてお 話しします
Astro について ref: https://docs.astro.build/ja/concepts/why-astro/ Astro は、コンテンツにフォーカスした高速な Web サイトを構築 するためのオールインワン Web
フレームワークです。 “ “
Astro について ref: https://docs.astro.build/ja/concepts/why-astro/ Astro を選ぶ理由 1. コンテンツ重視 2. サーバーファースト
3. デフォルトで高速 4. 簡単に使える 5. 充実した機能と柔軟性 “ “
Astro について コンテンツ重視 複雑な UI/UX を実現するための" アプリケーション" ではな く、" コンテンツ"
を重視する web サイト向け ブログ、ポートフォリオ、コーポレートサイト、LP, ... サーバーファースト CSR ではなく SSR を優先、かつ SPA ではなく MPA View Transition API によって SPA っぽい挙動もできる(SPA モ ードと呼称)
アイランドアーキテクチャ Astro が採用する web アーキテクチャパターン 「Astro アイランド」とは、HTML の静的なページ上にあるイン タラクティブな UI
コンポーネントを指します。1 つのページに複 数のアイランドが存在でき、アイランドは常に孤立して表示され ます。静的で非インタラクティブな HTML の海に浮かぶ島(アイ ランド)とお考えください。 “ “
アイランドアーキテクチャ → 静的な部分をサーバー側で事前に用意し、必要に応じてインタラク ティブな UI を埋め込むことで、並列ロード(≒ パーシャルハイドレー ション)が可能 → コンポーネントの読み込みの優先度を設けて、優先度の高いものか
ら表示させることができる
Astro の Pros/Cons 前提 筆者は Vanilla JS や jQuery よりも、Vue.js
や React に触れていた期 間が長いためモダンな UI ライブラリ(以下 React を仮定)贔屓に なってる気がします 一意見として捉えてください
Astro の Pros/Cons Pros 特定のフレームワークに依存しないので、導入ハードルが比較的低 い 素の マークアップ の感覚で書けるので、React に馴染みのない人で
も取っ付きやすい メンテナンスとエコシステムの成長速度が早い 2 週間おきのマイナーバージョンアップ デフォルトのインテグレーションも充実しており自作もできる
Astro の Pros/Cons Cons 逆に React に慣れてると色々と歯痒い点がある 他の UI ライブラリと共存させるにしても連携が取り辛い点がある
辛み:クライアントサイドでの処理 jsx のようにイベントハンドラを直接記述できないため、都度 DOM の API を呼ぶ必要がある addEventListener() , querySelector()
... 状態管理の仕組みもデフォルトでは備わっていない 公式が推奨している Nano Stores という軽量な状態管理ライブラ リがあるのでそれである程度カバーは可能
辛み:他の UI ライブラリとの共存 コンポーネントの依存関係 .astro ファイルから .jsx や .vue のコンポーネントを呼ぶことは
できるが、その逆は出来ない 他の UI ライブラリのコンポーネントを使う場合はできる限りツ リーの末端で使う考慮が必要 LP 案件では最終的に .tsx ファイルが 22 、 .astro ファイルが 3 個という内訳になった()
辛み:他の UI ライブラリとの共存 画像の取り扱い Astro には組み込みで画像最適化用の <Image /> や <Picture
/> コ ンポーネントがあるが、他の UI ライブラリのコンポーネントで はそれは当然使えない Astro と React での画像の扱い方の差異の対処に結構苦労した
EOF