ISRは、next.jsのハイブリッドレンダリング方法であり、SEOとユーザーエクスペリエンスの改善に役立ちます。この記事では、ISRがnext.jsでどのように機能するかを説明し、ページルーターとアプリルーターの両方でISRを実装する例を示し、最後に、next.jsのISRに関するいくつかの一般的な質問に対処します。
ISRとは何ですか?。
ISRはSEOとユーザーエクスペリエンスをどのように改善しますか?今、ユーザーの代わりにWebサイトを要求するGoogleボットを想像してください。最新のGoogle BotsはJavaScriptを実行してコンテンツを取得できますが、これに依存するだけでSEOに悪影響を与える可能性があります。ボットは、最初のHTMLを空であると見なす可能性があり、ページコンテンツのインデックス付けを遅らせ、検索ランキングを害する可能性があります。
。
Next.jsは、サーバーのプレレンダリングなどのサーバー側のレンダリング手法を使用してこれを解決します。レンダリングについては後で詳しく説明しますが、簡単な概要を説明します。サーバーの事前レンダリングを使用すると、各ルートのHTMLがサーバー上で生成され、クライアントに直接送信されます。 CSSおよびJavaScriptファイルは通常、バンドルされてキャッシュされます。したがって、ユーザーまたはGoogleボットがサイトにアクセスすると、すぐに完全にレンダリングされたページが表示されます。 Google BotはHTMLのコンテンツを即座に見ることができるため、これによりSEOが改善されます。また、ページのロードをスピードアップすることでユーザーエクスペリエンスを向上させます。つまり、ユーザーはコンテンツが動的にロードされるのを待つ必要はありません。
ISRはどのように機能しますか?
ここで、ブログリストページにISRを実装し、再生時間を60秒に設定したとします。プロジェクトを初めて構築すると、再生タイマーが開始されます。ユーザーがウェブサイトにアクセスし、ブログリストページにアクセスし、ブログの現在のリストを確認します。一方、新しいブログ投稿を公開しますが、60秒のウィンドウにまだ20秒が残っているため、サイトにアクセスしている新しいユーザーはまだ新しいブログが表示されません。
はまだ表示されません。
60秒が増えると、ISRは新しいデータをチェックし、新しいブログ投稿があることを確認し、更新されたコンテンツで静的ページを再生します。次に、サーバー上の新しいバージョンをキャッシュします。注意すべき重要なことは次のとおりです。ISRはページを再生していますが、ユーザーは新しいバージョンの準備が整うまで古いバージョンを表示します。したがって、ISRが終了した後、新しい訪問者は更新されたページが表示されますが、再検証の前にすでにサイトにいたユーザーは、更新されない限り古いページが表示されます。覚えておくべきもう1つの重要なことは、NPM Run Buildを使用してWebサイトを構築すると、初期静的ページがISRではなくSSG(静的サイト生成)によって生成されることです。最初のビルドの後、ISRは再生プロセスを処理するためにキックインします。また、ISRはサイト全体を再生しません。 ISRが実装されている特定のページのみを再生します。したがって、ISRが再生すると、その特定のページのみがプロジェクト全体ではなく更新されます。
アプリルーターにISRを実装する方法
覚えておくべき重要なポイントの1つは、revalidateオプションが設定されているサーバーコンポーネントのAPIを呼び出さない場合、ISRが機能しないことです。サーバーコンポーネントは、ページを再生するために新しいデータを取得できる必要があります。そうしないと、更新は発生しません。
ISRを有効にするために、あなたがする必要があるのは、revalidateプロパティをフェッチ方法に追加することだけです。 Fetchの代わりにAxiosを使用することを好む場合でも、リクエストを同様に構成することで使用できますが、今のところはFetchの使用に固執します。たぶん後で私はaxiosでそれを行う方法を説明します。
TSXファイルとjsx fielで例を提供しました:
これはTSXファイルに実装の例
です
繰り返しますが、この関数はクライアントではなくサーバー上で実行されます。これが実証する例です:
これはTSXファイルに実装する例です:
これはJSXファイルに実装する例です。
結論
ISRが何であるか、どのように機能するか、およびページルーターとアプリルーターの両方でそれを実装する方法を十分に理解する必要があります。この記事では、できるだけ明確に説明しようとしましたが、さらに良く説明できる場合は、後で更新します。不明な場合は、コメントを残してお知らせください。さらに説明します。
このブログを読んでくれてありがとう、そして私はあなたがそれを楽しんだことを願っています!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3