Redux Moderno con Redux Toolkit

Rate this content
Bookmark

¡Redux Toolkit 2.0 llegará pronto (TM)! Descubre qué está cambiando y por qué, el trabajo que se ha invertido en reempaquetar las bibliotecas Redux, una visión general de las nuevas características y los cambios importantes, y el último estado sobre los planes de lanzamiento.

FAQ

Mark Erickson es un ingeniero senior de front-end en Replay y un mantenedor de Redux y creador de Redux Toolkit. Es conocido por su contribución significativa a estas herramientas de desarrollo.

Redux Toolkit fue lanzado originalmente en octubre de 2019. La versión 1.9 se lanzó un año antes de la discusión sobre RTK 2.0, que es la versión en desarrollo mencionada.

Los cambios en RTK 2.0 incluyen la eliminación de una sintaxis de objeto en Create Slice y Create Reducer, mejoras en la type safety para ConfigureStore, eliminación de campos obsoletos, y la sustitución del tipo AnyAction por UnknownAction.

Mark enfrentó desafíos significativos con la compatibilidad de los módulos ES Common JS, lo que le llevó a investigar y ajustar configuraciones, y escribir una publicación de blog detallada sobre las dificultades encontradas.

Redux Toolkit 2.0 introduce una API de Slices combinadas para inyección dinámica de reductores, la capacidad de definir selectores dentro de create slice, y mejoras en el empaquetado y performance con la última versión de Emmer.

Redux es una biblioteca para manejar el estado de las aplicaciones JavaScript, lanzada en 2015. Redux Toolkit, lanzado en 2019, es una herramienta oficial que simplifica la configuración y uso de Redux.

Mark Erickson espera lanzar Redux Toolkit 2.0 a principios de diciembre, con el objetivo de resolver los problemas pendientes y recibir feedback sobre las versiones beta actuales antes de la versión final.

Se recomienda a los desarrolladores que prueben las versiones beta de RTK 2.0 y React Redux versión 9, y que proporcionen feedback sobre el proceso de actualización y cualquier problema que encuentren.

Mark Erikson
Mark Erikson
7 min
13 Nov, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Mark Erickson discute los cambios y desafíos en Redux Toolkit 2.0, incluyendo la dirección de la compatibilidad de ES Module Common JS y el envío de nuevas características. El lanzamiento incluye una salida de construcción modernizada, tamaños de paquete más pequeños y nuevas características como la API de Slices combinadas y las comprobaciones de modo de desarrollo en Reselect. La versión de prueba actual es beta4, con planes de envío para la primera semana de diciembre. Se espera que RTK 3.0, centrado en las actualizaciones de consulta de RTK, se lance el próximo año.

Available in English: Modern Redux With Redux Toolkit

1. Introducción a Redux Toolkit 2.0

Short description:

Hola, soy Mark Erickson, un ingeniero senior de front-end en Replay. Hoy, hablaré sobre las novedades en Redux Toolkit 2.0.

Muy bien, gracias. Hola, soy Mark Erickson, y hoy estoy muy emocionado de hablarles sobre lo nuevo en Redux Toolkit 2.0. Un par de cosas rápidas sobre mí. Soy un ingeniero senior de front-end en Replay, donde estamos construyendo un depurador de viaje en el tiempo para JavaScript. Tenemos un stand en el salón de vendedores. Por favor, pasen. Creo que todavía nos quedan algunos gatos pato amarillos, y nos encantaría contarles cuánto más fácil hace Replay la depuración. Responderé preguntas en cualquier lugar donde haya un cuadro de texto en internet. Recojo todo tipo de enlaces útiles. Soy un escritor de publicaciones de blog extremadamente largas, y soy un mantenedor de Redux y creador de Redux Toolkit. Pero la mayoría de la gente me conoce como ese tipo con el avatar de los Simpsons.

2. Cambios y Desafíos en Redux Toolkit 2.0

Short description:

Redux Toolkit 2.0 tiene como objetivo abordar la compatibilidad de los módulos ES Common JS, modernizar la salida de compilación de JS, enviar nuevas funciones, eliminar API obsoletas y proporcionar mejores tipos y empaquetado de TypeScript para Redux core y React Redux. Sin embargo, lograr la compatibilidad de los módulos ES Common JS ha demostrado ser difícil, lo que llevó a una publicación de blog y discusiones sobre el tema. El plan para enviar Redux Toolkit 2.0 se amplió para incluir otros paquetes como Redux Thunk, Reselect y React Redux, lo que resultó en versiones mayores para todos. Los cambios en RTK 2.0 incluyen la eliminación de la sintaxis de objeto en Create Slice y Create Reducer, la introducción de una sintaxis de devolución de llamada del constructor para una mejor seguridad de tipo, la mejora de las opciones para ConfigureStore y la eliminación de campos obsoletos y el tipo AnyAction en favor de UnknownAction. Ya no se envían artefactos de compilación UMD, pero se agradece la retroalimentación sobre su necesidad.

Bueno, Redux Toolkit salió en octubre de 2019. El original Redux salió en 2015, por lo que RTK ha estado disponible la mitad del tiempo que Redux ha existido, y aún así, muchas personas aún no lo conocen. Así que enviamos la versión 1.9 hace un año, y a principios de este año, comenzamos a trabajar en RTK 2.0, y teníamos varios objetivos. Uno es corregir la compatibilidad de los módulos ES Common JS, sea lo que sea que eso signifique. Otro es modernizar la salida de compilación de JS. Podemos dejar de preocuparnos por IE 11. Teníamos algunas nuevas funciones que queríamos enviar, queríamos eliminar algunas API obsoletas, y queríamos enviar versiones actualizadas del núcleo de Redux y React Redux con mejores tipos de TypeScript y packaging.

Desafortunadamente, resulta que la compatibilidad de los módulos ES Common JS es realmente difícil. He pasado gran parte de mi año golpeando mi cabeza contra la pared tratando de hacer que esto funcione, creo que encontré algunas configuraciones que son correctas. Ha sido un verdadero dolor. Terminé escribiendo una publicación de blog muy larga sobre lo difícil que ha sido esto y muchos otros mantenedores de bibliotecas han acordado y dicho, sí, sí, estamos lidiando con lo mismo. Entonces, escribí una publicación de blog sobre esto. Está en mi sitio, blog.iswordsoftware.com. También, tuve un par de conversaciones y podcasts sobre cómo lidiar con esto también.

Entonces, el plan original era simplemente enviar Redux Toolkit 2.0. Además, para el caso, habíamos convertido el núcleo de Redux a TypeScript en 2019 y nunca lo enviamos porque los tipos de la versión 4 todavía eran lo suficientemente buenos, y estábamos preocupados por los cambios disruptivos. Entonces, íbamos a enviar ambos juntos, y luego me di cuenta de que nuestros otros paquetes necesitaban estos mismos cambios. Redux Thunk, Reselect, React Redux. Todos necesitaban las mismas actualizaciones de packaging, también, y eso realmente significa versiones mayores para todo. Entonces, ¿qué está cambiando realmente? Tenemos algunos cambios disruptivos en RTK 2.0. Esperemos que sean relativamente menores. Hemos eliminado una sintaxis de objeto que se usaba en Create Slice y Create Reducer. Hay una sintaxis de devolución de llamada del constructor que proporciona una mejor type safety, y realmente es la misma cantidad de líneas de código. Incluso tenemos un mod de código para convertir eso por ti. Hemos mejorado algunas de las opciones para ConfigureStore, nuevamente, para una mejor type safety. Hay algunos campos obsoletos que finalmente eliminamos. Los tipos de Redux tenían un tipo AnyAction que era muy laxo, y lo hemos reemplazado con un tipo UnknownAction. En términos del proceso de compilación, hemos dejado de enviar artefactos de compilación UMD. No puedo encontrar ninguna razón para mantenerlos. Si crees que todavía los necesitamos, y tienes un caso de uso para ello, por favor házmelo saber.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Vue.js London Live 2021Vue.js London Live 2021
34 min
Todo Más Allá de la Gestión de Estado en Tiendas con Pinia
Top Content
Cuando pensamos en Vuex, Pinia, o tiendas en general, a menudo pensamos en la gestión de estado y los patrones Flux, pero no solo las tiendas no siempre siguen el patrón Flux, ¡hay mucho más en las tiendas que las hace valer la pena usar! Plugins, Devtools, renderizado en el lado del servidor, integraciones TypeScript... Vamos a sumergirnos en todo más allá de la gestión de estado con Pinia con ejemplos prácticos sobre plugins y Devtools para sacar el máximo provecho de tus tiendas.
Uso efectivo de useEffect
React Advanced Conference 2022React Advanced Conference 2022
30 min
Uso efectivo de useEffect
Top Content
¿Puede useEffect afectar negativamente a tu base de código? Desde la obtención de datos hasta la lucha con las APIs imperativas, los efectos secundarios son una de las mayores fuentes de frustración en el desarrollo de aplicaciones web. Y seamos honestos, poner todo en ganchos useEffect no ayuda mucho. En esta charla, desmitificaremos el gancho useEffect y obtendremos una mejor comprensión de cuándo (y cuándo no) usarlo, así como descubriremos cómo los efectos declarativos pueden hacer que la gestión de efectos sea más mantenible incluso en las aplicaciones React más complejas.
React Query: ¡Es hora de romper con tu "Estado Global"!
React Summit Remote Edition 2020React Summit Remote Edition 2020
30 min
React Query: ¡Es hora de romper con tu "Estado Global"!
Top Content
Una cantidad creciente de datos en nuestras aplicaciones React proviene de fuentes remotas y asíncronas y, aún peor, continúa disfrazándose como "estado global". En esta charla, obtendrás información sobre por qué la mayoría de tu "estado global" en realidad no es un estado en absoluto y cómo React Query puede ayudarte a buscar, almacenar en caché y gestionar tus datos asíncronos con una fracción del esfuerzo y el código al que estás acostumbrado.
Los Átomos de Jotai Son Simplemente Funciones
React Day Berlin 2022React Day Berlin 2022
22 min
Los Átomos de Jotai Son Simplemente Funciones
Top Content
Jotai es una biblioteca de gestión de estado. La hemos estado desarrollando principalmente para React, pero conceptualmente no está vinculada a React. En esta charla, veremos cómo funcionan los átomos de Jotai y aprenderemos sobre el modelo mental que deberíamos tener. Los átomos son una abstracción agnóstica del marco para representar estados, y básicamente son solo funciones. Comprender la abstracción de átomo ayudará a diseñar e implementar estados en sus aplicaciones con Jotai
Anunciando Starbeam: Reactividad Universal
JSNation 2022JSNation 2022
27 min
Anunciando Starbeam: Reactividad Universal
Starbeam es una biblioteca para construir sistemas de datos reactivos que se integran nativamente con frameworks de UI como React, Vue, Svelte o Ember. En esta charla, Yehuda anunciará Starbeam. Cubrirá la motivación para la biblioteca, y luego entrará en los detalles de cómo funciona la reactividad en Starbeam, y lo más importante, cómo puedes usarlo para construir bibliotecas reactivas hoy que funcionarán nativamente en cualquier framework de UI. Si eres realmente aventurero, también hablará sobre cómo podrías usar Starbeam en una aplicación existente utilizando el framework de tu elección y hablará sobre los beneficios de usar Starbeam como el sistema de gestión de estado en tu aplicación.
Pensando en React Query
React Summit 2023React Summit 2023
22 min
Pensando en React Query
Top Content
En esta charla, explicaré React Query desde una perspectiva diferente. Después de haber mantenido React Query durante más de dos años y haber respondido muchas preguntas (a menudo las mismas varias veces), siento que podría faltar una comprensión fundamental sobre la librería. Comenzaré con una rápida introducción sobre mi viaje en el mundo de código abierto y cómo llegué a conocer React Query, seguido de mostrar qué cambio de mentalidad es beneficioso cuando se trabaja con React Query - cómo "pensar en React Query".Tendré 3 conclusiones principales:1) React Query no es una biblioteca de obtención de datos. Es un administrador de estado asíncrono, hablaremos rápidamente sobre qué hace a un administrador de estado, por qué React Query es uno y qué significa "estado asíncrono".2) staleTime es tu mejor amigo. He visto un poco de confusión sobre cómo usar React Query como un administrador de estado, así que explicaré por qué configurar staleTime es en su mayoría todo lo que necesitas3) los parámetros son dependencias. Esto es importante para entender para mostrar los límites entre el estado del cliente y el estado del servidor, y es esencial cuando se hace la gestión del estado con React Query. Terminaré con una nota sobre "separación de preocupaciones" y sobre los compromisos de simplemente llamar `useQuery` donde lo necesites en tu árbol de componentes.

Workshops on related topic

Repensando el Estado del Servidor con React Query
React Summit 2020React Summit 2020
96 min
Repensando el Estado del Servidor con React Query
Top Content
Featured Workshop
Tanner Linsley
Tanner Linsley
La distinción entre el estado del servidor y el estado del cliente en nuestras aplicaciones puede ser un concepto nuevo para algunos, pero es muy importante entenderlo cuando se entrega una experiencia de usuario de primera calidad. El estado del servidor viene con problemas únicos que a menudo se cuelan en nuestras aplicaciones sorpresa como:
- Compartir datos entre aplicaciones- Caché y Persistencia- Deduplicación de Solicitudes- Actualizaciones en segundo plano- Gestión de Datos "Obsoletos"- Paginación y Recuperación Incremental- Memoria y Recolección de Basura- Actualizaciones Optimistas
Los gestores tradicionales de "Estado Global" pretenden que estos desafíos no existen y esto finalmente resulta en que los desarrolladores construyan sus propios intentos sobre la marcha para mitigarlos.
En esta masterclass, construiremos una aplicación que expone estos problemas, nos permite entenderlos mejor, y finalmente los convierte de desafíos a características usando una biblioteca diseñada para gestionar el estado del servidor llamada React Query.
Al final de la masterclass, tendrás una mejor comprensión del estado del servidor, el estado del cliente, la sincronización de datos asíncronos (un bocado, lo sé), y React Query.
Gestión del estado en React con Context y Hooks
React Summit Remote Edition 2021React Summit Remote Edition 2021
71 min
Gestión del estado en React con Context y Hooks
WorkshopFree
Roy Derks
Roy Derks
Mucho ha cambiado en el mundo de la gestión del estado en React en los últimos años. Donde Redux solía ser la principal biblioteca para esto, la introducción de las API de Contexto y Hooks de React ha revolucionado las cosas. Ya no necesitas bibliotecas externas para manejar tanto el estado del componente como el estado global en tus aplicaciones. En este masterclass aprenderás los diferentes enfoques para la gestión del estado en la era post-Redux de React, ¡todos basados en Hooks! Y como bonificación, exploraremos dos próximas bibliotecas de gestión del estado en el ecosistema de React.