Intercambio de datos entre una aplicación Redux y el servidor
Esta sección es para estudiantes avanzados, que no se detuvieron en lo logrado en Redux y decidieron llegar hasta el final de este tutorial. En las siguientes dos secciones, abordaremos el trabajo de una aplicación Redux con lógica asíncrona, conectaremos nuestra aplicación con el backend y aprenderemos a intercambiar datos con él.
De secciones anteriores, sabemos que la base del funcionamiento de una aplicación Redux es un mecanismo síncrono. Las etapas principales consisten en enviar acciones cuando ocurre algún evento en la aplicación, luego actualizar el estado en la store mediante la función reductora, notificar a los componentes de la aplicación sobre el cambio de estado y, en consecuencia, mostrar el nuevo valor del estado en los componentes.
En la vida real, a menudo la aplicación
también necesita lógica asíncrona, por
ejemplo, cuando se trabaja con solicitudes
HTTP API y se obtienen datos de algún
servidor externo. Por lo tanto, para que
nuestra store Redux 'síncrona' pueda
trabajar con dicha lógica asíncrona, se
utiliza lo que se llama middleware:
software que actúa como intermediario o
conexión entre la store de nuestra
aplicación y, por ejemplo, el servidor
con el que comenzaremos a trabajar en este
capítulo del tutorial.
Para Redux, se ha creado una gran cantidad
de dicho middleware, sin embargo, el más
ampliamente utilizado entre ellos y
oficialmente recomendado para el trabajo
de aplicaciones Redux con lógica asíncrona
sigue siendo
Redux Thunk.
Este software nos ayuda a utilizar funciones
ordinarias (o thunks), que pueden contener
lógica asíncrona, como setTimeout,
Promises, async/await, para
interactuar con nuestra store. En cuanto al
término en sí, un thunk es un fragmento
de código que realiza algún trabajo diferido.
Ahora que nos hemos familiarizado un poco con cómo trabajar con lógica asíncrona en Redux, podemos proceder a implementar esta etapa en nuestra aplicación. Necesitamos lograr que nuestra aplicación pueda interactuar con algún servidor externo, recibiendo y enviándole datos. En otras palabras, nos espera un tema emocionante y muy importante. Comencemos.