ClientRouter
ClientRouterとは
SPAのような遷移を提供する
Layout.astroなどのルート階層の<head>内に配置することが一般的
---
// src/layouts/Layout.astro
import { ClientRouter } from 'astro:transitions';
---
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>Trail</title>
<!-- Here -->
<ClientRouter />
</head>
<body>
<slot />
</body>
</html>
-
フルリロードの防止
- SPA“風”である
- 遷移の前に移動先のHTMLをfetchして差分を更新する
- JSが無効な時はMPAに切り替わる
-
状態・DOMの永続化(
transition:persisit)- 遷移による状態を保持できる
- アンマウント・再マウントの防止
-
アニメーションの追加
- WebViewTransitions APIをベースに作られている
- Build in animation directives
-
ライフサイクルイベントの提供
- ClientRouterを使用すると従来のDOMContentLoadedなどが発火しなくなるため提供
- Lifecycle events