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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mimu
November 27, 2023
39
0
Share
lt.pdf
mimu
November 27, 2023
More Decks by mimu
See All by mimu
TypeScriptのバックエンド開発について
mmrakt
0
68
マルチレポだってスキーマ駆動開発がしたい!
mmrakt
0
68
npm/Yarn/pnpmゆるふわ解説
mmrakt
0
1.4k
Type Script型パズル(?)超入門
mmrakt
0
100
まだWebpackで消耗してるの?
mmrakt
0
99
Featured
See All Featured
How to make the Groovebox
asonas
2
2.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
170
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Color Theory Basics | Prateek | Gurzu
gurzu
0
320
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
160
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
220
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
380
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
The Pragmatic Product Professional
lauravandoore
37
7.3k
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