Stiamo costruendo il nostro sito web con reagiscono/reagire-router/reduxlato server di rendering con i dati asincroni recuperare
Vogliamo lato server rendere le nostre pagine che dovrebbero essere riempiti dai dati dalle nostre fonti di dati. Questa transazione deve essere asincrona e sfortunatamente dal momento che vogliamo il rendering lato server, non possiamo usare la funzione "componentDidMount".
Nella pagina redux tutorial lato server di rendering sezione here, è stato consigliato di:
Se si usa qualcosa come Reagire router, si potrebbe anche voler esprimere tuoi dati dipendenze che vanno a prendere come fetchData statici() sui componenti del gestore di route . Possono restituire azioni asincrone, in modo che la funzione handleRender possa corrispondere alla route alle classi di componenti del gestore di percorso , al risultato di fetchData() di ciascuna di esse e al rendering solo dopo che le promesse sono state risolte. In questo modo le chiamate API specifiche richieste per percorsi diversi sono collocate insieme alle definizioni del componente gestore di route . È inoltre possibile utilizzare la stessa tecnica su lato client per impedire al router di cambiare pagina fino a i suoi dati sono stati caricati.
Questo è il modo in cui gestiamo il recupero dei dati. Personalmente non mi è piaciuto questo approccio sembra piuttosto maldestro ed è troppo accoppiato alla libreria di routing. Ci sono modi migliori per farlo - si spera con componenti standard react/router/redux?
"Questa transazione deve essere asincrona" Perché? – flup
Molto spesso il recupero dei dati dalle API è asincrono in modo da non bloccare il thread principale, specialmente se si sta recuperando da più API, se non si desidera attendere l'altro se possibile. –