ホームページ >ウェブフロントエンド >jsチュートリアル >React-router を使用してシングルページ React アプリで URL ナビゲーションの問題を処理する方法は?
React-router を使用したシングルページ アプリのナビゲーション
React-router を使用すると、Web ページを更新したり URL を直接入力したりするときに一般的な問題が発生しますアドレスバーに。意図したページをロードせずに、エラーが発生します。これは、ルーティング方法がサーバー側からクライアント側に移行したために発生します。
サーバー側ルーティングとクライアント側ルーティング
従来、URL は解釈されていました。完全にサーバー側で行われます。ユーザーが「http://example.com/about」のような URL をリクエストすると、サーバーはリクエストを受信し、目的のページを特定して返します。
React Router ではクライアント側ルーティングが導入されています。最初のリクエストは引き続きサーバーに送信されます。ただし、サーバーは、React および React Router をロードするために必要なスクリプトを含む HTML で応答します。これ以降、URL の変更はサーバーの介入なしに完全にクライアント側で処理されます。
問題への対処
URL がサーバーの両方で機能することを確認するには、次のようにします。クライアント側では、ルーティングを両側で構成する必要があります。これはさまざまな方法で実現できますが、それぞれに長所と短所があります。
ハッシュ履歴
ハッシュ履歴を使用すると、URL の後ろにハッシュ記号 (#) が含まれます。パス。たとえば、「http://example.com/#/about」です。サーバーは「http://example.com/」のみを認識し、通常どおり処理します。その後、React Router はハッシュ部分を取得して、正しいページをレンダリングします。
欠点:
キャッチオール
ハッシュ履歴と同様に、キャッチオール アプローチはブラウザ履歴を利用しますが、サーバー上にキャッチオール ルートを設定します。このルートは、すべてのリクエストを特定のファイル (index.html など) にリダイレクトします。
欠点:
ハイブリッド
ハイブリッド アプローチでは、キャッチオールと特定のルートの専用スクリプトを組み合わせます。一部の重要なページの SEO を改善する一方で、設定が複雑になる場合があります。
同形
サーバーとクライアントの両方で Node.js を使用するこのアプローチにより、次のことが可能になります。同じ JavaScript コードを両端で実行します。サーバーは、ページ遷移中にクライアントが作成するものと同じマークアップを生成します。
欠点:
推奨アプローチ
最も適切なアプローチは、特定の要件と技術的能力によって異なります。簡素さとスケーラビリティを考慮すると、キャッチオール方式を開始点とするのが合理的です。サーバー側のレンダリングと最適な SEO が重要である場合は、より複雑ではありますが、同型アプローチの方が望ましい場合があります。
追加リソース
以上がReact-router を使用してシングルページ React アプリで URL ナビゲーションの問題を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。