Componentes de Full Stack

Rate this content
Bookmark

Remix es un marco de trabajo web que te ofrece el modelo mental simple de una aplicación de múltiples páginas (MPA) pero el poder y las capacidades de una aplicación de una sola página (SPA). Uno de los grandes desafíos de las SPA es la gestión de la red que resulta en una gran cantidad de indirecciones y código defectuoso. Esto es especialmente notable en el estado de la aplicación que Remix elimina por completo, pero también es un problema en los componentes individuales que se comunican con un punto final de backend de un solo propósito (como una búsqueda de combobox, por ejemplo).


En esta charla, Kent demostrará cómo Remix te permite construir componentes de interfaz de usuario complejos que están conectados a un backend de la manera más simple y poderosa que hayas visto. Dejándote tiempo para relajarte con tu familia o lo que sea que hagas para divertirte.

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

FAQ

RemixConf EU es un evento donde se habla sobre tecnologías y desarrollos relacionados con Remix, un marco de trabajo de full stack. Durante el evento se realizan presentaciones y demostraciones sobre cómo usar Remix en diferentes contextos de desarrollo.

Epicweb.dev es un proyecto en el que el ponente está trabajando actualmente a tiempo completo. Se menciona como algo notable durante la presentación, sugiriendo que es un recurso relevante en el contexto del desarrollo web.

Las diapositivas y el material relacionado con la charla están disponibles en el GitHub del ponente, permitiendo a los interesados revisar en detalle lo expuesto durante la conferencia.

La charla incluyó una demostración de cómo Remix permite integrar componentes de UI y código del lado del servidor en un mismo archivo, facilitando la creación de interfaces y acciones más integradas y eficientes.

Remix trata los módulos sin una exportación por defecto como un recurso, lo que permite crear rutas API directamente dentro de los componentes, como se demostró con un ejemplo de búsqueda de clientes durante la presentación.

Se mencionó la biblioteca Downshift, creada por el ponente cuando estaba en PayPal, la cual ayuda a gestionar cuadros combinados en interfaces de usuario de manera eficiente.

El useFetcher es un hook en Remix que permite interactuar con cargadores y acciones para realizar búsquedas y otras operaciones de datos de manera dinámica, facilitando la interacción con la API sin recargar la página.

La característica favorita del ponente respecto a Remix son las Mutations, destacando cómo Remix maneja el state management de la aplicación de manera efectiva, simplificando la creación y gestión de estados en aplicaciones web.

Kent C. Dodds
Kent C. Dodds
37 min
18 Nov, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
RemixConf EU discutió los componentes de full stack y sus beneficios, como la unión del backend y la interfaz de usuario en el mismo archivo. La charla demostró la implementación de un cuadro combinado con funcionalidad de búsqueda utilizando Remix y la biblioteca Downshift. También destacó la facilidad de crear rutas de recursos en Remix y la importancia de la organización y mantenibilidad del código en los componentes de full stack. El orador expresó su gratitud hacia la audiencia y discutió el futuro de Remix, incluyendo su adquisición por Shopify y el potencial para la colaboración con Hydrogen.
Available in English: Full Stack Components

1. Introducción a los Componentes de Full Stack

Short description:

Estoy emocionado por RemixConf EU y hablar sobre los componentes de full stack. Estoy trabajando en Epicweb.dev, mi cosa a tiempo completo ahora. Esta charla es una demostración de componentes que incluyen código de UI y del lado del servidor. Hablaremos de Remix, nuestro marco de trabajo de full stack favorito.

¿Qué pasa amigos de Remix? Estoy muy emocionado por RemixConf EU y estoy realmente emocionado de estar hablando con todos ustedes sobre los componentes de full stack, así que vamos a hablar sobre llevar la colocación al siguiente nivel.

Así que una cosa de la que quería hablar rápidamente es que estoy trabajando en Epicweb.dev, si aún no lo has visto definitivamente échale un vistazo. Es mi cosa a tiempo completo ahora, es increíble. Y todas mis diapositivas y todo para esta charla están en mi GitHub por lo que puedes echar un vistazo a eso allí.

Así que esta charla va a ser una demostración de componentes que incluyen tanto el code de la UI como un code del lado del servidor y vamos a estar haciendo mucho código y así que sí, abróchate el cinturón. Vamos a estar hablando de Remix, por supuesto nuestro UI framework favorito. Bueno, marco de trabajo de full stack, no solo UI y eso es parte de lo que se trata esta charla.

2. Explorando las Características de Remix

Short description:

Remix nos permite unir el backend y la UI en el mismo archivo. Podemos construir UIs que no están centradas en la URL, como el botón de 'me gusta' de Twitter. Vamos a demostrar un cuadro combinado que realiza una búsqueda. Tenemos una aplicación en funcionamiento con una ruta para buscar clientes. Podemos exportar un componente que consume el cargador. Estamos utilizando la biblioteca Downshift para la experiencia del cuadro combinado.

Así que Remix nos permitió unir el backend y la UI de una manera que nunca se había hecho antes con el cargador y la acción y nuestra UI todo en el mismo archivo. Y esta es una demostración bastante simple de cómo funciona desde una perspectiva de ruta. Así que tenemos nuestra ruta de proyectos y aquí tenemos nuestro cargador para cargar esos proyectos y tenemos nuestro formulario para agregar nuevos proyectos y la pieza de backend para esa mutación.

Pero a veces tenemos UIs que no son tan centradas en la URL, por ejemplo el botón de 'me gusta' de Twitter, cuando hago clic en ese botón de 'me gusta' eso no me va a llevar a otro lugar, no solo lo renderizo en una página especial que tiene una ruta específica, renderizo el botón de 'me gusta' para cada uno de los tweets que están en la página y eso no funciona muy bien como algo que te gustaría pegar en un cargador o una acción para una ruta particular necesariamente y aquí hay otro ejemplo de un cuadro combinado que está haciendo una búsqueda y esto es lo que realmente vamos a estar demostrando hoy.

Así que, tengo una implementación de esta aplicación aquí mismo, no estamos renderizando el cuadro combinado todavía porque vamos a construirlo juntos y conectarlo al backend y va a ser genial. Así que, eso es todo. Es hora de la demo. Así que, lo primero es que tenemos esta aplicación en funcionamiento aquí mismo, estamos en la versión 01.b4 de la aplicación y estamos en el directorio de la aplicación bajo rutas y bajo este directorio de recursos es donde encontraremos a los clientes. Así que, vamos a tener esta ruta para slash recursos slash clientes y esa va a ser la ruta de la API que vamos a estar usando para ir a buscar un montón de clientes.

Ahora, una cosa realmente genial sobre Remix es que si no tienes una exportación por defecto de tu módulo, Remix tratará tu módulo como un recurso. Y así, lo que queremos decir con eso específicamente es que puedo decir exportar una función asíncrona, vaya, una función, vamos, ahí, llamada cargador y aquí voy a devolver JSON y ese JSON en realidad va a venir de Remix run node y diremos hola mundo. Y si guardo eso y vengo aquí, puedo ir a recursos, clientes y voy a obtener hola mundo. Ahora, no hay nada especial en el directorio de recursos aparte del hecho de que mi editor parece que le gusta darle un icono especial, pero no hay nada especial en esto. Podemos llamar a esto como queramos y resulta que la forma en que me gusta que funcione mi URL para esto es tener un slash recursos y eso es todo. Así que donde quiera que queramos que sea esa URL, ahí es donde va a estar el archivo. Así que al tener una exportación de cargador pero sin exportación por defecto, esta es solo una solicitud regular para como una solicitud de API. Así que con eso en su lugar, ahora podemos construir algo de UI que interactúa directamente con este cargador que hace solicitudes de búsqueda. Pero lo que es realmente genial de Remix es que en realidad podemos añadir un montón de otras exportaciones a esto también. Podemos exportar const koala equals Kodi, como no importa. Podemos hacer lo que queramos aquí y Remix lo ignorará en sus construcciones. Así que lo que eso significa es que en realidad podemos exportar un componente aquí que consume este cargador y eso es exactamente lo que vamos a hacer. Y porque sé que probablemente no te importa verme escribir un montón de JSX, en realidad he escrito todo el material de JSX allí. Así que aquí está nuestro cargador, es justo lo que teníamos antes, pero luego tenemos un montón de otras cosas de JSX aquí que, como dije, probablemente no te importa verme hacer todo eso. Así que saltándonos la parte de JSX, la parte más importante e interesante aquí es que estamos usando esto use combo box, que es un gancho de Downshift. Downshift es una biblioteca que construí hace años cuando estaba en PayPal, y es para hacer esta experiencia de cuadro combinado para nosotros. Y todo lo que necesitamos hacer es proporcionarle los elementos y podemos responder a los cambios de valor de entrada a medida que el usuario está escribiendo. Así que eso es perfecto. Eso es exactamente las dos cosas que necesitamos. Y con eso estamos exportando este cuadro combinado, pero todavía somos solo una ruta de recurso. No hay nada especial pasando aquí.

QnA

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

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Entendiendo la Arquitectura Fiber de React
React Advanced 2022React Advanced 2022
29 min
Entendiendo la Arquitectura Fiber de React
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
WebAssembly enables optimizing JavaScript performance for different environments by deploying the JavaScript engine as a portable WebAssembly module. By making JavaScript on WebAssembly fast, instances can be created for each request, reducing latency and security risks. Initialization and runtime phases can be improved with tools like Wiser and snapshotting, resulting in faster startup times. Optimizing JavaScript performance in WebAssembly can be achieved through techniques like ahead-of-time compilation and inline caching. WebAssembly usage is growing outside the web, offering benefits like isolation and portability. Build sizes and snapshotting in WebAssembly depend on the application, and more information can be found on the Mozilla Hacks website and Bike Reliance site.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería 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 de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del 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 la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Fundamentos de Remix
React Summit 2022React Summit 2022
136 min
Fundamentos de Remix
Top Content
Featured WorkshopFree
Kent C. Dodds
Kent C. Dodds
Construir aplicaciones web modernas está lleno de complejidad. Y eso solo si te molestas en lidiar con los problemas
¿Cansado de conectar onSubmit a las API del backend y asegurarte de que tu caché del lado del cliente se mantenga actualizada? ¿No sería genial poder utilizar la naturaleza global de CSS en tu beneficio, en lugar de buscar herramientas o convenciones para evitarla o trabajar alrededor de ella? ¿Y qué te parecería tener diseños anidados con una gestión de datos inteligente y optimizada para el rendimiento que simplemente funciona™?
Remix resuelve algunos de estos problemas y elimina completamente el resto. Ni siquiera tienes que pensar en la gestión de la caché del servidor o en los conflictos del espacio de nombres global de CSS. No es que Remix tenga APIs para evitar estos problemas, simplemente no existen cuando estás usando Remix. Ah, y no necesitas ese enorme y complejo cliente graphql cuando estás usando Remix. Ellos te tienen cubierto. ¿Listo para construir aplicaciones más rápidas de manera más rápida?
Al final de esta masterclass, sabrás cómo:- Crear Rutas de Remix- Estilizar aplicaciones de Remix- Cargar datos en los cargadores de Remix- Mutar datos con formularios y acciones
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
JSNation 2023JSNation 2023
174 min
Desarrollando Blogs Dinámicos con SvelteKit & Storyblok: Una Masterclass Práctica
Top Content
Featured WorkshopFree
Alba Silvente Fuentes
Roberto Butti
2 authors
Esta masterclass de SvelteKit explora la integración de servicios de terceros, como Storyblok, en un proyecto SvelteKit. Los participantes aprenderán cómo crear un proyecto SvelteKit, aprovechar los componentes de Svelte y conectarse a APIs externas. La masterclass cubre conceptos importantes incluyendo SSR, CSR, generación de sitios estáticos y despliegue de la aplicación usando adaptadores. Al final de la masterclass, los asistentes tendrán una sólida comprensión de la construcción de aplicaciones SvelteKit con integraciones de API y estarán preparados para el despliegue.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Cómo Resolver Problemas del Mundo Real con Remix
Remix Conf Europe 2022Remix Conf Europe 2022
195 min
Cómo Resolver Problemas del Mundo Real con Remix
Featured Workshop
Michael Carter
Michael Carter
- ¿Errores? Cómo renderizar y registrar tus errores del servidor y del clientea - Cuándo devolver errores vs lanzar excepcionesb - Configurar servicios de registro como Sentry, LogRocket y Bugsnag- ¿Formularios? Cómo validar y manejar formularios de varias páginasa - Usar zod para validar los datos del formulario en tu acciónb - Pasar por formularios de varias páginas sin perder datos- ¿Atascado? Cómo solucionar errores o funciones faltantes en Remix para que puedas continuara - Usar patch-package para solucionar rápidamente tu instalación de Remixb - Mostrar herramienta para gestionar múltiples parches y seleccionar solicitudes de extracción abiertas- ¿Usuarios? Cómo manejar aplicaciones de varios inquilinos con Prismaa - Determinar el inquilino por el host o por el usuariob - Base de datos múltiples o base de datos única/múltiples esquemasc - Asegura que los datos del inquilino siempre estén separados de los demás