tanto para el contexto como para los eventos y en el futuro acciones y cosas así, lo que facilita mucho su uso en tus máquinas o en múltiples máquinas. Esto proporciona una forma más sencilla y una forma más segura en cuanto a tipos de trabajar con un modelo de datos específico con tus máquinas de estado.
Otro cambio reciente son las etiquetas. Con las etiquetas, podemos asignar algunos estados finitos y etiquetas, que podrías pensar como nombres de clase en HTML y CSS, y podríamos decir que todas estas fechas tienen un.... Entonces, básicamente, esto debería ser 'loading' en lugar de 'pending', pero podríamos decir básicamente que cuando estamos en uno de los estados finitos que tiene esta etiqueta, hacer algo como mostrar un spinner de carga o algo así. Y esto hace que sea muy fácil reutilizar las máquinas de estado en una variedad de contextos diferentes.
Ahora, en la versión cinco de XState, también hay muchas cosas nuevas que vienen. Y estamos trabajando arduamente para lanzar esta versión beta. Una de las cosas interesantes son los comodines parciales. Ahora puedes especificar eventos que, por ejemplo, 'mouse.star' representaría eventos como 'mouse.click', 'mouse.move.out' y otros. Por lo tanto, puedes especificar eventos parciales y capturar transiciones para esos eventos. También puedes especificar guardias de nivel superior. Y, como recordatorio, las guardias son las que hacen que se tomen o no se tomen transiciones. Son básicamente una transición condicional. Y ahora, con las guardias de nivel superior, tenemos una forma de combinar diferentes predicados en una sola transición. Y esto también se presta muy bien a la visualización. En el futuro, verás estas guardias visualizadas como un árbol de decisiones, lo cual es bastante interesante.
Hay muchas otras cosas que vienen en X-State v5. En primer lugar, estamos simplificando todo el modelo de actores detrás de él, donde todo es un actor en lugar de casos especiales, promesas, observables, devoluciones de llamada, cosas así. Solo tenemos una interfaz unificada que si es un actor, si es algo a lo que puedes enviar eventos y recibir eventos de, entonces X-State funcionará naturalmente con él. Y esto abre muchas posibilidades en el futuro con la integración con otros frameworks y otras bibliotecas también. Además, en el método 'assign', esto fue un error que técnicamente rompe en la v4, pero se corregirá en la v5 para que cuando realices llamadas 'assign', se realicen en el orden en que se especificaron en lugar de al principio. También estamos trabajando arduamente en la tipificación de TypeScript para tipificar de manera sólida acciones, servicios, guardias y más, así como claves de estado y cosas así. Básicamente, estamos haciendo que esta sea una experiencia de tipificación lo mejor posible para el desarrollador. Hablando de la experiencia del desarrollador, también estamos trabajando en hacerlo modular y más pequeño para que solo necesites importar las cosas que te interesan. A menudo se ha dicho que XState tiene muchas características y es posible que no necesites todas esas características. Y así, si quieres mantener el tamaño del paquete bajo, puedes importar solo las cosas que necesitas de XState en lugar de todo. Y, por supuesto, esta es solo una lista corta de muchas más mejoras que vendrán en la versión cinco. Siempre estamos abiertos a tus sugerencias sobre cómo podemos mejorar XState. Pero sí, todo esto es para decir que XState no es solo una biblioteca de gestión de estado.
Comments