Muy bien, buenas tardes. Mi nombre es 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 verdadero depurador de viaje en el tiempo para JavaScript. Tenemos un stand allí en el vestíbulo. Si aún no lo has visto, por favor pasa. Nos encantaría mostrarte cuánto más fácil hace la depuración de aplicaciones.
Responderé preguntas en cualquier lugar donde haya un cuadro de texto en internet. Recojo todo tipo de enlaces interesantes. Escribo entradas de blog ridículamente largas. Soy un mantenedor de Redux, pero la mayoría de la gente me conoce como ese tipo con el avatar de Los Simpson. Lo sé. A veces llevo una etiqueta con mi nombre para que la gente me reconozca.
Redux Toolkit es la forma estándar de escribir lógica de Redux hoy en día. Proporciona métodos para simplificar los patrones estándar de Redux, como la creación de tiendas, la escritura de reductores, funciones e incluso la obtención de datos. Incluye una sub-pieza llamada RTK query, que está específicamente diseñada para simplificar la obtención de datos en las aplicaciones de Redux, y se envuelve alrededor de las APIs centrales de Redux.
Lanzamos RTK 1.0 en octubre de 2019, lo que si lo piensas significa que ha estado alrededor la mitad de tiempo que la biblioteca original de Redux, y sin embargo, muchas personas no saben de ella. La última versión ha sido RTK 1.9. Lanzamos 1.9 hace un año. El último lanzamiento de parche fue 1.9.7.
Al comienzo de este año, comenzamos a trabajar para RTK 2.0, y teníamos varios objetivos. El primero es la correcta compatibilidad entre los módulos ES y common JS, lo que eso realmente signifique. Queríamos modernizar los artefactos de construcción de JavaScript para que utilicen una sintaxis moderna, ya no apuntando a IE 11. Queríamos agregar algunas nuevas funciones, eliminar algunas APIs obsoletas y queríamos enviar algunos tipos de TypeScript actualizados junto con el empaquetado.
Ahora, desafortunadamente, resulta que todo este asunto de la compatibilidad ESM common JS es realmente, realmente difícil. Pasé por varias rondas de iteración donde intenté cambiar algunas configuraciones, intenté cambiar alguna configuración de construcción, y varias herramientas no funcionaban correctamente. Resulta que el campo de exportación de paquetes es realmente complejo, pero el problema más grande es que cada herramienta de construcción diferente tiene su propia idea de cómo interpretan estas cosas. Estaba jugando con esto en la sala de conferencias hace una hora. Aún no está terminado. De hecho, terminé escribiendo una entrada de blog muy larga hace unos meses, hablando sobre el dolor y el sufrimiento que he tenido que soportar tratando de hacer que esto funcione.
Comments