CursosEmpresasBlogLiveConfPrecios

Introducción a Xstate: Gestión de Máquinas de Estado Interactivas

Clase 3 de 15 • Curso de State Machines en React.js

Clase anteriorSiguiente clase

Contenido del curso

Introducción a las máquinas de estado

  • 1
    Máquinas de Estado: Conceptos y Uso en React con Xstate

    Máquinas de Estado: Conceptos y Uso en React con Xstate

    02:16 min
  • 2
    Conceptos Básicos de Diagramas de Estado y Transiciones

    Conceptos Básicos de Diagramas de Estado y Transiciones

    02:20 min
  • 3
    Introducción a Xstate: Gestión de Máquinas de Estado Interactivas

    Introducción a Xstate: Gestión de Máquinas de Estado Interactivas

    Viendo ahora
  • 4
    Diseño de Máquinas de Estado para Reservas de Vuelos

    Diseño de Máquinas de Estado para Reservas de Vuelos

    07:25 min

Machines 101

  • 5
    Creación de Proyecto React con Máquina de Estados XState

    Creación de Proyecto React con Máquina de Estados XState

    06:33 min
  • 6
    Propiedades y Métodos de XState: Manejo de Estados Avanzado

    Propiedades y Métodos de XState: Manejo de Estados Avanzado

    09:14 min
  • 7
    Tipos de Transiciones en Máquinas de Estados Finite

    Tipos de Transiciones en Máquinas de Estados Finite

    06:36 min
  • 8
    Implementación de Eventos y Transiciones en Máquinas de Estado

    Implementación de Eventos y Transiciones en Máquinas de Estado

    13:30 min

Machines 102

  • 9
    Implementación de Acciones en Máquinas de Estado Finito

    Implementación de Acciones en Máquinas de Estado Finito

    07:08 min
  • 10
    Manipulación del Contexto en XState: Inicialización y Actualización

    Manipulación del Contexto en XState: Inicialización y Actualización

    09:40 min
  • 11
    Máquinas de Estado: Jerarquías y Paralelismo

    Máquinas de Estado: Jerarquías y Paralelismo

    07:54 min
  • 12
    Implementación de Servicios y Solicitudes HTTP en Proyectos

    Implementación de Servicios y Solicitudes HTTP en Proyectos

    12:07 min
  • 13
    Validación de Pasajeros y Visualización en Ticket Final

    Validación de Pasajeros y Visualización en Ticket Final

    05:06 min

Cierre

  • 14
    Despliegue de Proyectos en GitHub Pages paso a paso

    Despliegue de Proyectos en GitHub Pages paso a paso

    03:43 min
  • 15
    Máquinas de Estado: Implementación en Proyectos Reales

    Máquinas de Estado: Implementación en Proyectos Reales

    00:31 min
Tomar examen
    Fernando Quinteros Gutierrez

    Fernando Quinteros Gutierrez

    student•
    hace 4 años

    ❎¿Qué es XState?

    Ideas/conceptos claves

    XState

    Es una librería e intérprete para trabar con máquinas de estado y diagrama de estados en diferentes tecnologías

    Recursos

    XState Docs

    XState Visualizer

    Apuntes

    • XState puede integrarse con diferentes tecnologías como ser React, Vue o Svelte
    • Tiene un visualizador de donde podremos observar y manipular máquinas de estados
    📌 **RESUMEN:** XState es una librería que te ayuda a crear máquinas de estados y se puede utilizar con diferentes tecnologías web. Aparte contiene un visualizador donde puedes observar y manipular máquinas de estados.
    Javier Ceferino Rodriguez

    Javier Ceferino Rodriguez

    student•
    hace 3 años

    XState Visualizer está buenísimo! Repliqué la rutina para preparar mates (obviando algunos pasos para no entrar en detalles). Dejo el código:

    import { createMachine, assign } from 'xstate'; interface Context { retries: number; } const fetchMachine = createMachine<Context>({ id: 'drink_mate', initial: 'mate', context: { retries: 0 }, states: { mate: { on: { FILL_YERBA: 'mate_yerba' } }, mate_yerba: { on: { FILL_HOT_WATER: '🧉', FILL_COLD_WATER: '😵' } }, '🧉': { type: 'final' }, '😵': { on: { 'HEAT_WATER': { target: 'mate_yerba', actions: assign({ retries: (context, event) => context.retries + 1 }) } } } } });
    Harrison Hipolito Mendoza Ortiz

    Harrison Hipolito Mendoza Ortiz

    student•
    hace 4 años

    Xstate es gratuito en su totalidad.

      David Vega Varela

      David Vega Varela

      student•
      hace 4 años

      es software libre

      Harrison Hipolito Mendoza Ortiz

      Harrison Hipolito Mendoza Ortiz

      student•
      hace 4 años

      gracias compañero

    Harold Zurita Simon

    Harold Zurita Simon

    student•
    hace un año

    Es una librería e interprete que nos ayuda a manejar máquina de estado en diferentes tecnologías. Básicamente ellos construyeron una base que nosotros luego podemos implementar usando Typescript, React, Vue y muchas otras cosas para manejar máquinas de estado dentro de nuestros proyectos.

    También tienen un visualizer, una página donde nosotros podemos diagramar máquinas de estado e interactuar con ellas mientras las vamos dibujando.

    Este es el link del visualizer:

    Aquí podemos pegar el objeto de nuestra máquina de estado e irlo armando.

    import { createMachine, assign } from 'xstate'; const fileMachine = createMachine({ id: 'archivos', initial: 'inicial', states: { inicial: { on: { INIT_UPLOAD: { target: 'cargando'} } }, cargando: { on: { UPLOAD_COMPLETE: { target: 'terminado'} } }, terminado: { on: { RESTART: { target: 'inicial' } } } } })

    Tenemos un estado inicial, que en este caso se llama initial , y tenemos un listado de estados que son los posibles estados en los que puede estar mi máquina. Dentro de cada uno de estos estados tenemos al atributo o propiedad On , que la usamos para declarar los eventos que puede recibir ese estado.

    Entonces si yo estoy inicial yo sé que puedo hacer un INIT UPLOAD , si estoy en cargando , puedo hacer un UPLOAD COMPLETE .

    Luego de armar el objeto de la máquina y tenemos una idea de cómo debe funcionar, le damos al botón de Visualize y nos lo va a cargar en un diagrama de estados. Lo genial de este diagrama de estados es que es interactivo.

    Si nos fijamos ahorita está en el estado inicial , que es el que tiene el borde azul, y la transición que está habilitada, que podemos hacer estando en ese estado es el INIT_UPLOAD . Si le damos podemos ver cómo la visualización del diagrama se mueve a mostrar el siguiente estado que es cargando y me muestra la opción de UPLOAD_COMPLETE para seguirme moviendo a través de nuestra máquina de estado.

    Esto funciona muy bien cuando estamos empezando a armar nuestra máquina, que solo sabemos un poco del flujo que queremos tener, pero no tenemos claro los eventos o las transiciones. Esto nos ayuda muchísimo a verlo de una manera gráfica.

    Además de eso, es muy útil para debugging si luego metemos más estados mientras estamos programando y no se sabe qué se rompió, podemos traerlo por acá y ver dónde se está rompiendo la máquina.

    Stiven Castillo Montero

    Stiven Castillo Montero

    student•
    hace 3 años

    INIT_UPLOAD, UPLOAD_COMPLETE, ... son las acciones que se pueden disparar según es estado actual.

    Juan Camilo Lentino Villalba

    Juan Camilo Lentino Villalba

    student•
    hace 4 años

    Es una librería e interprete para trabajar con maquinas de estado y diagramas de estado. puede usarse con React, vue o Svelte. . código de visualizador:

    import { createMachine } from 'xstate'; const fileMachine = createMachine({ id: 'archivos', initial: 'initial', states: { initial: { on: { INIT_UPLOAD: { target: 'cargando'} } }, cargando: { on: { UPLOAD_COMPLETE: { target: 'terminado'} } }, terminado: { on: { RESTART: { target: 'initial' } } } } })
    Juan Diego Mejia Maestre

    Juan Diego Mejia Maestre

    student•
    hace 10 días
    •
    editado

    🛠️ XState: Lógica de Actor y Máquinas en Código

    XState es la biblioteca estándar de la industria para JavaScript y TypeScript que permite crear, interpretar y ejecutar máquinas de estado finitas y diagramas de estado. Es la herramienta que convierte la lógica compleja en algo predecible.

    🚀 ¿Qué es XState?

    A diferencia de otros gestores de estado, XState se basa en la lógica declarativa:

    • Orquestación Completa: No solo guarda datos, sino que controla cuándo y cómo se puede cambiar de un estado a otro.
    • Modelo de Actores: En su versión más reciente (v5), permite que diferentes máquinas o procesos (actores) se comuniquen entre sí enviando mensajes.
    • Compatibilidad Total: Funciona con cualquier framework (React, Vue, Angular) o incluso en Vanilla JS y Node.js.

    🎨 XState Visualizer (Stately Viz)

    Es el compañero visual de XState. Es una herramienta en la web que transforma tu código en un diagrama interactivo.

    • Simulación en Vivo: Puedes disparar eventos manualmente y ver cómo la máquina "salta" de un estado a otro.
    • Generación Automática: No dibujas el diagrama; escribes el código y el Visualizer lo dibuja por ti.
    • Inspección de Estado: Permite ver qué datos (contexto) tiene la máquina en cada momento del proceso.

    💎 Beneficios Clave

    • Adiós a los estados imposibles: Evita errores lógicos donde, por ejemplo, una aplicación intenta "Cargar" y "Mostrar Error" al mismo tiempo.
    • Documentación Real: El diagrama del Visualizer sirve como documentación técnica siempre actualizada para el equipo.
    • Testing Facilitado: Al ser una máquina matemática, es mucho más fácil escribir pruebas automáticas para todos los caminos posibles.

    📌 Dato Importante: XState es especialmente útil en flujos donde el orden de los pasos es crítico, como procesos de pago, formularios de varios pasos o sistemas de autenticación.

    Jhordy Gavinchu

    Jhordy Gavinchu

    student•
    hace 3 años

    Será que babel use esta libreria 🤔

    Miguel Sosa

    Miguel Sosa

    student•
    hace 9 meses

    En el examen, hay una pregunta "Son usados para representar una máquina de estados de manera gráfica" donde la opción "Visualizer" es incorrecta (lo cual en esta clase claramente dice lo contrario) y además el link del examen a "Repasar" lleva a la clase anterior, que no habla de esto, por lo que queda bastante confuso.

    Miguel Sosa

    Miguel Sosa

    student•
    hace 9 meses

    XState y Redux son herramientas para manejar el estado en aplicaciones, pero tienen enfoques diferentes.

    XState utiliza máquinas de estado para describir estados y transiciones, lo que permite visualizar flujos y manejar lógica compleja de manera declarativa. Es ideal para situaciones con múltiples estados y transiciones, como formularios o procesos complejos.

    Redux, por otro lado, es una biblioteca para manejar el estado global de aplicaciones. Utiliza un enfoque basado en acciones y reducers, lo que puede ser más adecuado para aplicaciones donde se requiere un simple flujo de datos unidireccional.

    Ambas herramientas son poderosas, pero la elección depende de los requisitos específicos del proyecto y de la complejidad del estado que manejes.

    Jorge Arias Argüelles

    Jorge Arias Argüelles

    student•
    hace 10 meses
    • Máquinas de estado: Modelos que representan los estados y transiciones de un sistema.

    • XState: Librería para manejar máquinas de estado en diversas tecnologías (TypeScript, React, Vue, etc.).

    • Visualizer: Herramienta para diagramar y visualizar máquinas de estado de manera interactiva.

    • Estado inicial: El primer estado de la máquina, donde comienza el proceso.

    • Transiciones: Cambios de un estado a otro en respuesta a eventos (ej. Init Upload).

    • Depuración: Uso del visualizador para identificar y corregir errores en el flujo de la máquina de estado.

    Estos conceptos son fundamentales para implementar y gestionar máquinas de estado en tus proyectos.

    César Palma

    César Palma

    student•
    hace 3 años

    Que es XState una alternativa mas para gestionar el estado en nuestras aplicaciones. Alternativa a Redux y cuando con React Context y hooks no te sea suficiente.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads