リア・サーバ側レンダリングでAPIから初期ローディング・データをフェッチするためのベスト・プラクティスは何ですか? コンストラクタメソッドで初期データを読み込もうとしました。しかし、それは動作していません。リア・サーバ側レンダリングでの初期ローディング・データの取得
答えて
componentDidMount()を使用して、データをフェッチするアクションを開始します。それはあなたの店を埋めるでしょう。 isomorphic/universal reactを利用することで、ストアのJSONをマークアップに埋め込み、クライアント側に読み込むことができます。
'componentDidMount'がサーバサイドのレンダリングの場合に機能しないため、Downvotedです。リファレンス:https://facebook.github.io/react/docs/component-specs.html#mounting-componentdidmount –
十分な場合は、コンストラクタまたはcomponentWillMount()を使用して、 –
redux-sagaを使用して、サーバー側で初期データを取得するのを手伝ってください。以下は
は、あなたの質問にいくつかの追加情報を追加した場合、私のReact example that uses Redux Saga and Hapi for Server-side Rendering
class ReactController {
_html = null;
mapRoutes(server) {
server.route({
method: 'GET',
path: '/{route*}',
handler: async (request, reply) => {
const store = ProviderService.createProviderStore({}, true);
const context = {};
const app = (
<RouterWrapper
store={store}
location={request.path}
context={context}
isServerSide={true}
/>
);
this._html = (this._html === null) ? await this._loadHtmlFile() : this._html;
store.runSaga(rootSaga).done.then(async() => {
const renderedHtml = renderToString(app);
const state = store.getState();
const initialState = {
...state,
renderReducer: {
isServerSide: true,
},
};
const html = this._html
.slice(0)
.replace('{title}', state.metaReducer.title)
.replace('{description}', state.metaReducer.description)
.replace('{content}', renderedHtml)
.replace('{state}', JSON.stringify(initialState));
if (context.url) {
console.info('context', context);
}
reply(html);
});
renderToString(app);
store.endSaga();
},
});
}
async _loadHtmlFile() {
const htmlPath = path.resolve(__dirname, '../../public/index.html');
return fse.readFile(htmlPath, 'utf8');
}
}
- 1. リア・サーバ側レンダリング(CSSモジュール)FOUC問題
- 2. Vue.jsノードサイドサーバでのサーバ側レンダリング
- 3. リア・ルータのレンダリング・コンポーネントがメイン・コンポーネントの外側にある
- 4. サーバ側のanglejsレンダリングasp.net
- 5. イオン初期ローディング時間
- 6. Reactでコンポーネントをレンダリングするための初期データを取得する
- 7. サーバ側のレンダリング+反応ルータのリダイレクト
- 8. 角度のないcliサーバ側レンダリング
- 9. レスキューサーバー側のコンポーネントを非同期データでレンダリングする方法
- 10. vis.jsを使用してサーバ側からデータを取得
- 11. クライアント側とサーバー側のNBTローディング
- 12. リア・ルータv4とプリフェッチ・データを使用したサーバー・レンダリング
- 13. クライアント側非同期。サーバー側のレンダリングでのリクエスト
- 14. 高価な初期API呼び出しを伴うリアクションサーバー側レンダリング
- 15. Parse.com初期化サーバ
- 16. Elm:初期状態のレンダリング
- 17. サーバからデータを取得
- 18. バックボーンビュー、初期化、レンダリング
- 19. の取得データ最初
- 20. JavaScriptを取得する/サーバ側のブラウザでレンダリングされた要素をPHPで表示
- 21. 初期レンダリング後のハイチャートへのデータの追加
- 22. 余分なフォームの初期データを取得する方法
- 23. pojo初期化クラスのデータを取得する方法は?
- 24. サーバ側はでレンダリングするためのコンポーネントをエクスポート
- 25. ホットモジュールリロードでサーバ側のレンダリングに反応する
- 26. サーバからのメッセージをプルしてクライアント側でレンダリングする
- 27. サーバ側レンダリングのリアクタ・ルータ4:TypeError:nullのプロパティ 'pathname'を読み取れません
- 28. angular2の初期ローディングは3MBに達します
- 29. 初期エンティティフレームワークの移行スクリプトの取得
- 30. Swift 3の初期値の取得
からのスニペットは素晴らしいことだです。コード?問題?試み?これらの質問がない質問は、通常はあまりにも広すぎるとして閉じられているか、まったく回答がありません。 –
[非同期に初期化されたReact.jsコンポーネントのサーバーサイドレンダリングのための戦略](http://stackoverflow.com/questions/25983001/strategies-for-server-side-rendering-of-asynchronously-initialized-react- js-comp) – iofjuupasli
外部APIからデータを取り出し、そのデータを使ってコンポーネントをレンダリングする必要があります。どのように私はそれについて行く必要があります。私はその目的のためにコンストラクタメソッドで外部APIをヒットする必要があります。 –