
React Router ya no es simplemente un router. 馃寠
Ahora es un framework que puede manejar la carga de datos y las mutaciones del lado del servidor. 馃槑
En el pasado, habr铆amos tenido que configurar redux o una biblioteca de gesti贸n de estados para hacer esto, pero ahora React Router v7 (antes Remix) lo hace s煤per f谩cil.
Echemos un vistazo a un ejemplo real de un componente de suscripci贸n (Subscribtion) que estoy usando en mi sitio web para conseguir suscriptores.
Esto es lo que el buenazo de Kent C. Dodds llama 芦full stack components禄 (componentes de pila completa).
Podr铆amos importar este componente de suscripci贸n en cualquier parte de nuestra aplicaci贸n y simplemente funcionar谩. No necesitamos configurar nada m谩s. No tenemos que especificar d贸nde obtenemos los datos o c贸mo los manejamos.
Si tienes experiencia con redux, sabes que esto significar铆a mucho c贸digo adicional, y lo peor es que tendr铆amos que hacer todo eso en cada componente que haga peticiones, una y otra vez. 馃う馃徎
Ahora, respondamos algunas preguntas sobre este componente:
驴C贸mo enviamos data?
Usamos fetcher.submit o fetcher.Form para enviar datos al servidor. Puedes usar FormData que es muy pr谩ctico, o puedes enviar JSON, como quieras.
Observa c贸mo especificamos la acci贸n en el formulario:
Si no especificamos la acci贸n, React Router utilizar谩 la acci贸n (action) de la ruta actual.
Tip: Podemos especificar el m茅todo como
post,put,patch,delete.
驴C贸mo mostramos la carga?
Podemos monitorear el estado del fetcher con fetcher.state, esto nos va a ayudar a mostrar un estado de carga mientras esperamos la respuesta del servidor.
fetcher.state puede ser: "idle", "loading" o "submitting".
驴C贸mo recibimos la respuesta?
Podemos acceder a los datos de la respuesta con fetcher.data. 脡stos son los datos que devolvemos desde la acci贸n (action).
El flujo es muy sencillo
- Usamos
fetcher.submitofetcher.Formpara enviar datos al servidor. - Usamos
fetcher.statepara saber el estado de la petici贸n. - Usamos
fetcher.datapara acceder a los datos de la respuesta.
驴C贸mo se ve la action (ruta de recursos)?
Esto es todo lo que necesitamos para crear un componente de suscripci贸n.
Abrazo. Bliss.
Aprende m谩s de React Router v7 en la documentaci贸n oficial.

Zustand lleg贸 para destronar a Redux
Checa este otro Post

