<Link>
クライアントサイドルーティングでナビゲーションを有効にするための <a href>
ラッパーです。
<Link to>
の動作に関する future.v3_relativeSplatPath
の未来フラグの動作については、useResolvedPath
ドキュメントの スプラットパス セクションを参照してください。
プロパティ
to: string
最も基本的な使い方は、href 文字列を受け取ります。
to: Partial<Path>
Partial<Path>
値を渡すこともできます。
discover
future.unstable_fogOfWar
を使用する場合、ルートの検出動作を定義します。
- render - デフォルト、リンクがレンダリングされるときにルートを検出します
- none - 熱心に検出しない、リンクがクリックされた場合にのみ検出します
prefetch
リンクのデータとモジュールのプリフェッチ動作を定義します。
- none - デフォルト、プリフェッチなし
- intent - ユーザーがリンクにホバーまたはフォーカスしたときにプリフェッチします
- render - リンクがレンダリングされるときにプリフェッチします
- viewport - リンクがビューポート内にあるときにプリフェッチします、モバイルに非常に便利です
プリフェッチは、HTML <link rel="prefetch">
タグで行われます。それらはリンクの後に入力されます。
このため、nav :last-child
を使用している場合は、nav :last-of-type
を使用する必要があります。そうしないと、スタイルが条件付きで最後のリンク(および同様のセレクター)から外れてしまいます。
preventScrollReset
<ScrollRestoration>
を使用している場合、このプロパティを使用すると、リンクをクリックしたときにスクロール位置がウィンドウの上部にリセットされるのを防ぐことができます。
これは、ユーザーが戻る/進むボタンを使用して場所に移動したときにスクロール位置が復元されるのを防ぐものではなく、ユーザーがリンクをクリックしたときにリセットされるのを防ぐだけです。
議論
この動作が必要になる可能性のある例として、ページの上部ではなく、URL 検索パラメータを操作するタブのリストがあります。トグルされたコンテンツがビューポートからスクロールアウトされる可能性があるため、スクロール位置が上にジャンプするのは避けたいです!
relative
リンクの相対パスの動作を定義します。
- route - デフォルト、ルート階層に対して相対的なので、
..
は現在のルートパターンのすべての URL セグメントを削除します - path - パスに対して相対的なので、
..
は 1 つの URL セグメントを削除します
reloadDocument
リンクがクリックされたときに、クライアントサイドルーティングの代わりにドキュメントナビゲーションを使用します。ブラウザは通常どおり移行を処理します(<a href>
であるかのように)。
replace
replace
プロパティを使用すると、新しいエントリを履歴スタックにプッシュするのではなく、現在のエントリを履歴スタックから置き換えます。
# 履歴スタックはこのようになります
A -> B
# 通常のリンククリックは新しいエントリをプッシュします
A -> B -> C
# しかし、`replace` を使用すると、B は C に置き換えられます
A -> C
state
次のロケーションに永続的なクライアントサイドルーティング状態を追加します。
ロケーション状態には、location
からアクセスできます。
この状態はサーバーではアクセスできません。これは history.state
の上に実装されているためです。
unstable_viewTransition
unstable_viewTransition
プロパティを使用すると、最終的な状態の更新を document.startViewTransition()
でラップすることにより、このナビゲーションの ビュー遷移 を有効にすることができます。
このビュー遷移に特定のスタイルを適用する必要がある場合は、unstable_useViewTransitionState()
も利用する必要があります。