HOMEABOUTWORKSBLOGREACTCONTACT
// REACT_DEMO

React in Astro

AstroはReactコンポーネントをそのまま使えます。client:load ディレクティブをつけるとブラウザでインタラクティブになります。

useState — カウンター

Reactの基本。useState でコンポーネント内の状態を管理します。ボタンを押すと再レンダリングされます。

CLICKS0
// .astro ファイルで読み込む
import Counter from '../components/Counter';

// client:load をつけるとブラウザで動く
<Counter client:load label="CLICKS" />

useEffect + IntersectionObserver — スキルバー

useEffect で副作用(スクロール検知)を処理。画面に入った瞬間にアニメーションが始まります。

TypeScript / JavaScript90%
React / Next.js85%
Node.js80%
Python70%
Docker / CI/CD65%
Rust40%
// client:visible = 画面に見えたときだけ読み込む(パフォーマンス最適化)
<SkillBars client:visible />
// ASTRO ISLANDS

Astroは Islands Architecture を採用しています。
デフォルトではHTMLとして静的に出力され、client:* ディレクティブをつけた部分だけJSが動きます。 これにより、必要な箇所だけインタラクティブにしつつ、全体のパフォーマンスを保てます。

client:load
ページ読み込み時
client:visible
画面に入ったとき
client:idle
ブラウザのアイドル時
client:only
SSRをスキップ