Python APIとPostgresデータベースからデータを取得する Next.JS アプリを構築しています。
通常、これは単純ですが、ユーザーのクライアントではなくサーバー側からすべての要求を送信する必要があるという要件は除きます。
私は getInitialProps
を使用して作業していますが、README
のこの行のために、これが必要な完全なソリューションであることを確信できません。
最初のページの読み込みでは、
getInitialProps
はサーバーでのみ実行されます。getInitialProps
は、Linkコンポーネントを介して、またはルーティングAPIを使用して別のルートに移動する場合にのみクライアントで実行されます。
getInitialProps
は最初のページの読み込み用に設計されており、その後のサーバー側のデータフェッチ用ではないようです。
すべてのリクエストがサーバー側から来るようにNext.JSアプリを設計するにはどうすればよいですか?
ノート:
助けのために事前にタイ
Next.JSをExpressでラップすることで解決策を見つけました!
簡単なサンプルプロジェクトをGitHubにプッシュしました here
リポジトリには、Nice READMEと、何が起こっているのかを詳しく説明するコード内のコメントがあります。
簡単な要約:
nextApp.render(...)
を呼び出して、ページを明示的にレンダリングします。 server.js を参照してくださいnextApp.render(...)
を使用してページをレンダリングする前に、サーバー側のリクエストを行います。 server.js を参照してください。nextApp.render
は、ページに渡された値をctx
のコンテキスト(getInitialProps
)パラメータで提供します。これらの値をページで使用できるようにすることができますthis.props
をgetInitialProps
に返します。 stars.js を参照してください提案や改善を歓迎します!
これは一般に悪い考えです。
SPAの全体のポイントは、ページ全体のロードを防ぐことです。
getInitialProps
を使用すると、最初のページリクエスト中、および後続のナビゲーション中に、すべてのページに対して呼び出されるので、データをフェッチできます。
次に、APIを使用してサーバーと通信することをお勧めします