Convirtiéndose en un Maestro de Formularios: Flujos de Trabajo Intuitivos de Múltiples Pasos

Rate this content
Bookmark

Los formularios son una parte fundamental de muchas aplicaciones y a menudo las acciones complejas se dividen en múltiples formularios como pasos en este flujo de trabajo. Usando el API de Contexto de React y una máquina de estados convencional, podemos construir un sistema reutilizable para construir estos magos y hacer que la web sea un poco más mágica.

This talk has been presented at React Summit 2022, check out the latest edition of this React Conference.

FAQ

Un asistente en interfaces de usuario se refiere a un patrón de diseño que guía a los usuarios a través de varios pasos para completar una tarea complicada, dividiendo el proceso en partes manejables y proporcionando una experiencia de usuario más estructurada y menos abrumadora.

Las máquinas de estado permiten a los asistentes manejar transiciones más complejas entre pasos, controlando el flujo basado en el estado actual y los eventos, lo que facilita la implementación de rutas condicionales y la mejora de la experiencia de usuario al evitar pasos innecesarios y confusión.

Nick Hare utiliza Formic como administrador de estado para React en Betterment, y ha creado ejemplos de asistentes de varios pasos. También ha desarrollado una nueva solución llamada RoboWizard que utiliza XState FSM para manejar las máquinas de estado en los asistentes.

RoboWizard es una biblioteca creada por Nick Hare para construir flujos de trabajo de múltiples pasos respaldados por máquinas de estado. Permite la integración con distintas tecnologías como React y React Router, y proporciona una API intuitiva para manejar la navegación y la gestión de estados dentro de un asistente.

Utilizar un asistente en aplicaciones web ayuda a dividir formularios largos y procesos de registro en pasos más pequeños y manejables, aumentando la claridad y reduciendo la sobrecarga de información para el usuario, lo que resulta en una experiencia más agradable y eficiente.

En RoboWizard, las máquinas de estado se utilizan para definir y controlar los pasos de un asistente, permitiendo transiciones entre ellos basadas en condiciones específicas. Esto se logra utilizando XState FSM para crear y gestionar el modelo de estados, lo que facilita la implementación de flujos de trabajo complejos y dinámicos.

Nick Hehr
Nick Hehr
26 min
21 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Esta Charla explora el concepto de los magos de formularios y su papel en la creación de flujos de trabajo intuitivos de múltiples pasos. Se discute el uso de máquinas de estados y varias opciones de implementación, incluyendo Formic y el API de Dream. Se explica el proceso de construcción de un mago de formularios utilizando el contexto de React, los reductores y los hooks personalizados. También se cubre la integración de máquinas de estados y la introducción de la biblioteca Robo Wizard, destacando su flexibilidad y compatibilidad con diferentes frameworks de UI.

1. Introducción a los Asistentes de Formularios

Short description:

Bienvenido a Convertirse en un Asistente de Formularios, una charla sobre la construcción de flujos de trabajo intuitivos y de múltiples pasos impulsados por máquinas de estado. Mi nombre es Nick Hare, un ingeniero de software senior en el equipo de plataforma de front-end en Betterment en la ciudad de Nueva York. Hoy exploraremos qué es un asistente, cómo se crean, el papel de las máquinas de estado, las opciones de implementación y las direcciones futuras.

Bienvenido a Convertirse en un Asistente de Formularios, una charla sobre la construcción de flujos de trabajo intuitivos y de múltiples pasos impulsados por máquinas de estado.

Mi nombre es Nick Hare, soy un ingeniero de software senior en el equipo de plataforma de front-end en Betterment en la ciudad de Nueva York. En el pasado, he ayudado a organizar eventos y encuentros como Manhattan JS y ahora organizo una serie de charlas internas en Betterment llamada Better Dev. Además, me gusta experimentar con JavaScript integrado y soy fanático de andar en bicicleta al aire libre y escalar en interiores. Puedes encontrarme en línea en hipsterbrown.com o en hipsterbrown en Twitter y GitHub.

En nuestro viaje de hoy aprenderemos todo sobre qué es un asistente, cómo se crean típicamente, cómo las máquinas de estado pueden ayudarnos a mejorarlos, qué podemos usar para implementarlos y hacia dónde vamos desde aquí.

2. Introducción a los Asistentes y Flujos de Usuario

Short description:

Los asistentes son guías paso a paso que ayudan a los usuarios a realizar tareas complejas. Dividen el proceso de registro en pasos manejables, permitiendo a los usuarios centrarse en secciones individuales del formulario. Este patrón, conocido como flujo o flujo de trabajo en Betterment, ayuda a los usuarios a evitar experiencias abrumadoras y tediosas. También asegura que los usuarios comprendan conceptos y decisiones complejas. Betterment formaliza diversas tareas, como la creación de metas y la conexión de cuentas externas, como flujos, proporcionando convenciones y utilidades comunes para sus equipos.

Los asistentes han existido durante muchos años. Al construir aplicaciones, solicitar la entrada del usuario para crear registros o realizar acciones no siempre es tan simple como un formulario en una sola página. Muchas experiencias de usuario requieren que los clientes hagan clic a través de varios pasos para enviar toda la información. Este patrón de interfaz de usuario a menudo se llama asistente, un término que se remonta a finales de los años 80 y principios de los 90, para indicar guías paso a paso diseñadas para ayudarlo a realizar una tarea compleja.

Una fuente popular de esta fraseología es la función de asistente de Microsoft Page Publisher y el asistente de conexión. Sin embargo, el nombre generalmente me recuerda a este asistente. Muchos servicios y aplicaciones dividen el proceso de registro en una serie de pasos para que sea más fácil, especialmente si hay mucha información que recopilar para comenzar. Rellenar formularios largos puede ser increíblemente tedioso, por lo que los asistentes brindan una experiencia en la que las personas pueden centrarse en las partes individuales de esos formularios con una sensación de logro en cada paso adelante. Según las elecciones realizadas en este proceso, el asistente incluso puede ayudar a las personas a omitir rutas irrelevantes y posibles confusiones.

Creo que todos hemos visto esas secciones en los formularios de impuestos con un montón de condicionales en letra pequeña que al final terminamos ignorando por completo. Eso es lo que queremos evitar. Puede ser abrumador, distraído e incluso, como dije antes, muy tedioso de pasar. En su lugar, queremos ver esto. En Betterment, llamamos a este patrón flujo o flujo de trabajo y lo usamos bastante. Como empresa de servicios financieros, hay mucha información y conceptos complejos que cubrir. Queremos asegurarnos de que nuestros clientes comprendan estas decisiones. Junto con las tareas habituales de registro, formalizamos la creación de metas, mover dinero, conectar cuentas externas y más, todo como flujos. Dado la cantidad que hemos tenido que construir y mantener, tiene sentido tener algunas convenciones y utilidades comunes para que nuestros equipos las utilicen.

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
State management is not limited to complex applications and transitioning to a store offers significant benefits. Pinia is a centralized state management solution compatible with Vue 2 and Vue 3, providing advanced devtools support and extensibility with plugins. The core API of Pinia is similar to Vuex, but with a less verbose version of stores and powerful plugins. Pinia allows for easy state inspection, error handling, and testing. It is recommended to create one file per store for better organization and Pinia offers a more efficient performance compared to V-rex.
Uso efectivo de useEffect
React Advanced Conference 2022React Advanced Conference 2022
30 min
Uso efectivo de useEffect
Top Content
Today's Talk explores the use of the useEffect hook in React development, covering topics such as fetching data, handling race conditions and cleanup, and optimizing performance. It also discusses the correct use of useEffect in React 18, the distinction between Activity Effects and Action Effects, and the potential misuse of useEffect. The Talk highlights the benefits of using useQuery or SWR for data fetching, the problems with using useEffect for initializing global singletons, and the use of state machines for handling effects. The speaker also recommends exploring the beta React docs and using tools like the stately.ai editor for visualizing state machines.
Enrutamiento en React 18 y más allá
React Summit 2022React Summit 2022
20 min
Enrutamiento en React 18 y más allá
Top Content
Routing in React 18 brings a native app-like user experience and allows applications to transition between different environments. React Router and Next.js have different approaches to routing, with React Router using component-based routing and Next.js using file system-based routing. React server components provide the primitives to address the disadvantages of multipage applications while maintaining the same user experience. Improving navigation and routing in React involves including loading UI, pre-rendering parts of the screen, and using server components for more performant experiences. Next.js and Remix are moving towards a converging solution by combining component-based routing with file system routing.
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
Global state management and the challenges of placing server state in global state are discussed. React Query is introduced as a solution for handling asynchronous server state. The Talk demonstrates the process of extracting logic into custom hooks and fixing issues with state and fetching logic. Optimistic updates with mutation are showcased, along with the benefits of using React Query for data fetching and mutations. The future of global state management is discussed, along with user feedback on React Query. The Talk concludes with an invitation to explore React Query for server state management.
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
State management in React is a highly discussed topic with many libraries and solutions. Jotai is a new library based on atoms, which represent pieces of state. Atoms in Jotai are used to define state without holding values and can be used for global, semi-global, or local states. Jotai atoms are reusable definitions that are independent from React and can be used without React in an experimental library called Jotajsx.
Anunciando Starbeam: Reactividad Universal
JSNation 2022JSNation 2022
27 min
Anunciando Starbeam: Reactividad Universal
Starbeam is a library for building reactive user interfaces with JavaScript, similar to Svelte, Vue, and Ember. It provides a data structure and query feature for filtering and sorting. The useStarBeam function ensures JSX reconciliation only occurs when reactive dependencies change. Starbeam tracks every read and write operation to update the component accordingly. It can be used with React and other frameworks, and offers debugging tools and locale integration.

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.
Master Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Master Patrones de JavaScript
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante este masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debe conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final del masterclass, los participantes ganarán confianza en su capacidad para escribir código JavaScript de alta calidad que perdure en el tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento profesional y las oportunidades de avance en la industria del software
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.
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
React Advanced Conference 2022React Advanced Conference 2022
206 min
Mejores Prácticas y Patrones para Administrar Solicitudes de API y Estados
Workshop
Thomas Findlay
Thomas Findlay
Con el surgimiento de frameworks, como React, Vue o Angular, la forma en que se construyen los sitios web ha cambiado a lo largo de los años. Las aplicaciones modernas pueden ser muy dinámicas y realizar múltiples solicitudes de API para poblar un sitio web con contenido actualizado o enviar nuevos datos a un servidor. Sin embargo, este cambio de paradigma ha introducido nuevos problemas con los que los desarrolladores deben lidiar. Cuando una solicitud de API está pendiente, tiene éxito o falla, el usuario debe recibir una retroalimentación significativa. Otros problemas pueden incluir el almacenamiento en caché de datos de API o la sincronización del estado del cliente con el servidor. Todos estos problemas requieren soluciones que deben ser codificadas, pero pueden volverse rápidamente inmanejables y dar como resultado una base de código difícil de ampliar y mantener. En este masterclass, cubriremos cómo manejar las solicitudes de API, los estados de API y la cancelación de solicitudes mediante la implementación de una Capa de API y combinándola con React-Query.
Prerrequisitos: Para aprovechar al máximo este masterclass, debes estar familiarizado con React y Hooks, como useState, useEffect, etc. Si deseas codificar junto con nosotros, asegúrate de tener Git, un editor de código, Node y npm instalados en tu máquina.