Scambio di dati tra l'applicazione Redux e il server
Questa sezione è per gli studenti esigenti, che non si sono fermati a quanto raggiunto con Redux e hanno deciso di arrivare fino alla fine di questo tutorial. Nei prossimi due sezioni affronteremo il lavoro dell'applicazione Redux con la logica asincrona, collegheremo la nostra applicazione con il backend e impareremo a farle scambiare dati con esso.
Dalle sezioni precedenti sappiamo che alla base del funzionamento di un'applicazione Redux c'è un meccanismo sincrono. Le fasi principali del lavoro consistono nell'inviare azioni quando si verifica un evento nell'applicazione, poi aggiornare lo stato nello store con la funzione reducer, notificare i componenti dell'applicazione del cambio di stato e di conseguenza visualizzare il nuovo valore dello stato nei componenti.
Nella vita reale spesso accade che all'applicazione
serva anche una logica asincrona, ad esempio quando
si lavora con richieste HTTP API e si ricevono dati
da un server esterno. Pertanto, affinché il nostro store Redux
'sincrono' possa funzionare
con tale logica asincrona, si utilizza il cosiddetto
middleware - un software
che fa da intermediario o collegamento tra
lo store della nostra applicazione e, ad esempio,
il server, con cui inizieremo a lavorare in questo
capitolo del tutorial.
Per Redux sono stati creati molti middleware,
ma quello più diffuso tra di essi
e ancora ufficialmente raccomandato per il lavoro delle applicazioni Redux
con la logica asincrona rimane
Redux Thunk.
Questo software ci aiuta a utilizzare normali
funzioni (o thunk), che possono contenere
logica asincrona, come
setTimeout, Promises, async/await,
per interagire con il nostro store. Per quanto riguarda
il termine stesso, un thunk è un pezzo di codice che
esegue un lavoro posticipato.
Ora che abbiamo familiarizzato un po' con come lavorare in Redux con la logica asincrona, possiamo procedere all'implementazione di questa fase nella nostra applicazione. Dobbiamo fare in modo che la nostra applicazione possa interagire con un server esterno, ricevendo da esso e trasmettendogli dati. In altre parole, ci aspetta un argomento avvincente e molto importante. Iniziamo.