React Remixed

Rate this content
Bookmark

React y el ecosistema de JavaScript parecen estar cambiando constantemente. Dondequiera que miremos, hay nuevas bibliotecas y frameworks. Estas nuevas herramientas siempre llevan a aprender conceptos que a menudo son conocimientos no transferibles.


¿Qué tal si te digo que al aprender las API web estándar, volver a aprender la web y obtener un montón de conocimientos transferibles, también puedes comenzar a usar una fantástica nueva adición al ecosistema de React: Remix!

19 min
18 Nov, 2022

Video Summary and Transcription

Remix es un framework web de pila completa que se enfoca en la interfaz de usuario y trabaja hacia los estándares web. Elimina las cascadas de renderizado y recuperación de datos en aplicaciones web, lo que resulta en un mejor rendimiento. Remix aprovecha los fundamentos de la web y los combina con características como el almacenamiento en caché HTTP y el renderizado dinámico en el servidor. Permite la mejora progresiva y acelera la experiencia del usuario. Remix es una poderosa herramienta para el desarrollo web con un gran potencial para el futuro.

1. Introducción a Remix y Web Fetch APIs

Short description:

Bienvenidos a mi charla llamada React Remixed. Esta charla trata sobre las APIs de fetch web, HTML, formularios, objetos de datos de formulario, URL y otros. Cuando aprendes Remix, aprendes accidentalmente la web. Remix es un marco web de pila completa que se enfoca en la interfaz de usuario y se basa en los estándares web. Se puede considerar un compilador, un servidor HTTP del lado del servidor, un marco de servidor y un marco de navegador. Remix aprovecha la compilación de ES para generar el servidor HTTP, la compilación del navegador y un manifiesto de activos. El manifiesto de activos ayuda a precargar recursos y a prefetchearlos para la centralización del cliente. Esto permite que Remix elimine las cascadas de renderizado y fetch en las aplicaciones web.

Hola a todos. Bienvenidos a mi charla llamada React Remixed. Para cualquier otra cosa, permítanme presentarme. Soy Daniel Alfonso. Soy la persona de la izquierda en la foto, en caso de que no me reconozcan. La persona de la derecha aquí es mi compañero de programación. Soy un defensor del desarrollo en el grupo LLX. Soy embajador de Auth0 e instructor de Getion. Pueden encontrarme en Twitter y prácticamente en cualquier red social con el nombre de usuario DanielJCAlfonso.

Así que vamos directo a remixear y conocer más sobre ello. ¿De qué trata esta charla? Bueno, esta charla trata sobre las APIs de fetch web. Se trata de HTML, formularios, objetos de datos de formulario, URL y otros. Vale, ahora podrían preguntarse qué tiene que ver esto con Remix. Tiene que ver porque cuando aprendes Remix, aprendes accidentalmente la web. Ya sé, ya sé, ya sé, ya sé que podrían estar un poco cansados de que parezca que todos los días aparece un nuevo marco de JavaScript. Pero la cosa es, y como dije en la diapositiva anterior, cuando aprendes Remix, accidentalmente aprendes la web. Esto se debe a que Remix aprovecha las cosas que has estado haciendo en la web durante los últimos 20 años más o menos. Y se asegura de que cuando lo aprendas, adquieras conocimientos que puedas llevar de ida y vuelta entre la web y Remix, y esto es súper, súper genial.

Ahora, sé que podrían preguntarse, ¿qué es Remix? Y vamos a entrar en ello. Remix es un marco web de pila completa que te permite centrarte en la interfaz de usuario y trabajar hacia los estándares web para ofrecer una experiencia de usuario rápida, elegante y resistente. Remix también se puede considerar cuatro cosas. En este caso, un compilador, un servidor HTTP del lado del servidor, un marco de servidor y un marco de navegador. Vamos a profundizar un poco en cada uno de ellos para aprender un poco más. En cuanto a la parte del compilador, utilizando ES build, Remix generará tres cosas. Servidor HTTP, compilación del navegador y un manifiesto de activos. La compilación del navegador se utiliza para... e incluye automáticamente la división de código por ruta, importaciones de activos con huella digital como CSS e imágenes, prácticamente todo lo que necesitarás para ejecutar tu aplicación en un navegador. El manifiesto de activos, en este escenario, tanto el cliente como el servidor están utilizando este manifiesto de activos para conocer prácticamente todo el gráfico de dependencias de tu aplicación. Esto es útil cuando quieres precargar recursos en el renderizado inicial de tu aplicación, así como prefetchearlos para la centralización del cliente. Así es como Remix es capaz de eliminar las cascadas de renderizado y fetch que son muy, muy comunes en las aplicaciones web hoy en día. Utilizando este artefacto de compilación, una aplicación puede ser implementada en cualquier servicio de alojamiento siempre que ejecute JavaScript. En cuanto al servidor HTTP del lado del servidor y Android, este es un Android que se le da a estos servidores JavaScript que mencioné anteriormente.

2. Introducción a la filosofía de Remix

Short description:

Remix es un marco del lado del servidor y un marco del navegador que se enfoca en la interfaz de usuario y se basa en los estándares web. Elimina las cascadas de renderizado y fetch en las aplicaciones web, lo que resulta en un mejor rendimiento. Remix abraza el modelo cliente-servidor y ayuda a disminuir la cantidad de datos enviados a través de la red. Aprovecha los fundamentos de la web, como los navegadores, HTTP y HTML, y los combina con características como el almacenamiento en caché de HTTP y el renderizado dinámico del servidor. Remix utiliza JavaScript para mejorar la experiencia del usuario y admite operaciones de lectura y escritura a través de formularios HTML. Permite la mejora progresiva y acelera la experiencia del usuario al minimizar las descargas de activos y obtener solo los datos necesarios. Remix no sobreactualiza las tecnologías subyacentes, lo que lo convierte en una excelente herramienta para el desarrollo web.

Mientras Remix se ejecuta en el servidor, en realidad no es un servidor en sí mismo. En cuanto a la parte del marco del lado del servidor de Remix, si estás familiarizado con los controladores de modelo-vista-controlador del lado del servidor como Warevel o Rails, Remix es el controlador y la vista, y deja el modelo en manos del desarrollador. Desde la perspectiva del marco del navegador, una vez que se sirve un documento al navegador, Remix se encargará prácticamente de iterar esa página con los modelos de JavaScript del navegador. Por ejemplo, si un usuario hace clic en un enlace, en lugar de hacer un viaje de ida y vuelta al servidor para obtener todo el documento y todos los activos, Remix simplemente obtendrá los datos para tu próxima página y actualizará la interfaz de usuario. Esto tiene muchos beneficios en términos de rendimiento en comparación con hacer una solicitud de documento completo, ya que estos activos no necesitan descargarse ni extraerse de la caché, no es necesario analizarlos nuevamente en el navegador y los datos que se obtienen son mucho más pequeños que todo el documento.

Entonces, sí, esto es realmente genial, y esta es una introducción muy breve sobre qué es Remix. Pero sí, hablando de ello, ¿cuál es su filosofía? Bueno, Remix abraza completamente el modelo cliente-servidor. Puedes hacer que tu servidor sea rápido. Lo que no puedes controlar es la red del usuario. A veces, todos hemos experimentado esto, parece que funciona muy bien para nosotros, pero luego verificamos nuestro código, nuestra aplicación en la red del usuario y, simplemente porque no tienen el mismo ancho de banda o lo que sea que tengamos nosotros, entonces la aplicación es lenta. Tarda más tiempo en cargarse. Entonces, Remix te ayuda a disminuir la cantidad de cosas que envías a través de la red, para que no necesitemos enviar toda la interfaz de usuario esqueleto, porque Remix obtiene y puede incluso precargar en ocasiones los datos antes de que se renderice la página, y esto nos facilitará enviar aplicaciones a nuestros usuarios.

Como dije anteriormente, Remix trabaja con los fundamentos de la web. En este escenario, los navegadores, HTTP y HTML. Estas son tecnologías que han existido durante mucho tiempo y son bastante geniales, y Remix las abraza por completo. Al combinar cosas como el almacenamiento en caché de HTTP, el enfoque de Remix en la URL para los activos, el renderizado dinámico del servidor y las características de HTML como el atributo de enlace con el prefetch, tienes todas las herramientas que necesitas para hacer que tu aplicación sea realmente genial, y como dije, los navegadores y estas otras cosas que han existido durante unos 20 años, son muy, muy buenos, y Remix los aprovecha al máximo. Remix utiliza JavaScript para mejorar la experiencia del usuario al emular el comportamiento del navegador. Mientras que la mayoría de los marcos recientes solo tienen APIs para leer y obtener datos, Remix tiene tanto lectura como escritura. ¿Por qué, podrías preguntar? Al aprovechar los formularios HTML. Los formularios HTML han existido durante mucho tiempo y han sido la base para la mutación de datos desde los años 90, por lo que Remix abraza esto y mejora por completo esa API. Esto permitirá que la capa de datos de una función de Remix funcione con o sin JavaScript en una página. Esto significa que JavaScript, cuando hablamos de Remix, es lo que se llama mejora progresiva. Si decides agregar JavaScript a tu aplicación, permite que Remix acelere tu experiencia de usuario de dos maneras en una transición de página. No descargando y evaluando activos de JavaScript y CSS, y obteniendo solo los datos para las partes del diseño que cambian. Por último, y el último punto de la filosofía de Remix es que no sobreactualiza las tecnologías subyacentes. Y es por esto que se dice que, con Remix, accidentalmente se aprende el desarrollo web en general. Remix lo hace conveniente de usar, como dije, navegadores, HTTP, JavaScript. Pero estas cosas no están ocultas ni abstraídas.

3. Introducción a la Navegación Anidada y Obtención de Datos

Short description:

Entonces, sea lo que estés usando, es lo mismo que estarías usando con la web. Esta es prácticamente una introducción de unos seis minutos a Remix. Veamos las tres cosas principales que debes aprender: navegación anidada, obtención de datos y mutaciones. La navegación anidada te permite vincular segmentos de URL a la jerarquía de componentes. Remix facilita la carga de datos con una función de carga que obtiene los datos y proporciona acceso a ellos dentro del componente.

Entonces, sea lo que estés usando, es lo mismo que estarías usando con la web. Y sí, esta es prácticamente una introducción de unos seis minutos a Remix. Al menos en la parte teórica.

Ahora, vamos a ser un poco más prácticos y comprendamos las tres cosas principales que debes aprender para que puedas terminar la charla y sumergirte de lleno en Remix.

La primera, navegación anidada. La navegación anidada es básicamente la idea general de que puedes vincular segmentos de la URL a la jerarquía de componentes en la interfaz de usuario. Ahora sé que esto puede no tener mucho sentido al leer esta descripción, pero veamos un ejemplo. Aquí tenemos dos rutas, un perfil de usuario, una cuenta de usuario. Ambas rutas tienen algo en común, que es el usuario, donde tenemos el nombre de usuario. Y aquí tenemos dos pestañas, una para el perfil y otra para la cuenta. El concepto de navegación anidada es que cuando seleccionamos un perfil, nuestra ruta cambiará a ser usuario/barra/perfil y queremos renderizar esta parte anidada, que es la página de perfil anidada. Pero si hacemos clic en la cuenta, queremos que nuestra ruta cambie a cuenta y renderice la página anidada de la cuenta. Y así es como funciona la navegación anidada, porque cuando seleccionas una parte de la URL, de la interfaz de usuario, en lugar de volver a renderizar el resto o cambiar de página, se renderizará la parte anidada del componente. Y esto es muy poderoso. Y Remix aprovecha esto al máximo.

Para la siguiente parte, que es la obtención de data y las mutaciones. Bueno, sé que con las aplicaciones del lado del cliente y todo eso, estamos muy acostumbrados a usar useEffect o React, query o SWR, pero Remix hace esto mucho más fácil y sencillo. Veamos cómo podemos hacer la carga de data con Remix. Aquí tenemos un componente llamado héroes. En este componente, lo que queremos hacer es obtener algunos data, algunos datos de héroes, y renderizarlos. ¿Cómo funcionaría esto en Remix? Lo primero que tenemos que hacer es exportar una función de carga. Una función de carga es una función que se ejecutará cada vez que se cargue la aplicación. Y así es como puedes hacer la carga de data en tu aplicación. Cada vez que cargas una aplicación, puedes activar la obtención de algunos datos. Entonces, lo que tenemos aquí es que estamos devolviendo JSON. Esta es una respuesta HTTP y devolverá tus datos. Luego, para que dentro del componente podamos tener acceso a los datos, obtenemos nuestro gancho de carga de datos de usuario data, que nos dará acceso a los datos. Y luego, simplemente lo renderizamos. Y así es como puedes hacer la carga de data con Remix. Parece muy sencillo de hacer y hace que sea mucho, mucho más fácil obtener data.

4. Introducción a las Mutaciones y Acciones

Short description:

Para las mutaciones, en lugar de usar cargadores, creamos acciones. Definimos el método que nuestro formulario utilizará y, cuando se envía, Remix activa la acción. Podemos acceder a la solicitud y los datos del formulario dentro de la acción, eliminando la necesidad de rastrear el estado en el componente. Una vez que tenemos los datos del formulario, podemos activar la mutación de datos.

Y desacoplar la complejidad, supongo, hace que sea mucho más fácil de entender. Para las mutaciones es muy simple. Pero en lugar de usar cargadores, creamos acciones. Ahora, es posible que te preguntes, ¿cómo activamos una acción? Hablé de los forms hace unos 3-4 minutos, ¿no es así? Porque así es como Remix realiza las mutaciones. Básicamente creamos nuestro formulario y definimos qué método va a utilizar nuestro formulario, obtener nuestro post, y luego tenemos dentro los campos que debemos completar y cada vez que lo enviamos, esta Remix podrá buscar en la aplicación y decir, bien, ¿hay alguna acción aquí que necesite ser obtenida o activada? Entonces, cada vez que hacemos clic en enviar, esta acción se activará y dentro de ella, hacemos algunas cosas. Podemos acceder a la solicitud, que es donde podemos obtener los datos del formulario que está lleno. Por lo tanto, no necesitamos realizar un seguimiento del estado dentro de nuestro componente porque cada vez que presionamos enviar, los datos del formulario se enviarán a nuestra acción y simplemente podemos estructurarlos aquí. Bien, una vez que tenemos nuestros datos del formulario, podemos activar nuestra mutación de datos y eso es prácticamente todo.

5. Introducción al Ejemplo de Código de Remix

Short description:

Veamos un ejemplo de código de una aplicación construida en Remix que demuestra el enrutamiento anidado. La aplicación nos permite verificar y gestionar héroes, como Batman y Superman. Podemos ver sus perfiles, agregar nuevos héroes y eliminarlos. El código incluye una ruta de héroes, que autentica a los usuarios y obtiene datos de héroes. El enrutamiento anidado se logra utilizando un outlet, que renderiza las rutas anidadas. Al hacer clic en la ruta de índice, nos lleva a la nueva ruta, donde un formulario activa una acción para autenticar al usuario, validar los datos del formulario y crear un nuevo héroe. La aplicación también incluye una función de redireccionamiento.

Entonces, ahora veamos el ejemplo de código que tengo aquí, que es una aplicación construida en Remix que muestra un poco de este concepto para que podamos profundizar un poco más en eso. De acuerdo. Así que ahora basta de charla y veamos un poco de código y aquí tengo una demo, que es básicamente un concepto construido sobre la base de Tower of Babel, que es un cómic de Justice League de hace un par de años, donde bueno, Batman tenía una lista de héroes donde podías ver sus identidades reales y debilidades, por si acaso alguien de la Justice League o algo así se volvía enemigo.

Entonces aquí tenemos una aplicación construida sobre Remix y tenemos algunas cosas que podemos hacer aquí. Lo primero es lo primero, esto ya está aprovechando el enrutamiento anidado, pero te mostraré cómo. Aquí tenemos un componente simple donde podemos verificar a nuestros héroes. En este escenario estamos verificando el perfil de Batman y aquí podemos ver el usuario que está conectado y en este escenario Batman está conectado. Porque sí, queremos mantener esto seguro, nadie más debería usar nuestra aplicación. Y luego tenemos nuestra identidad de héroe, nuestra identidad secreta y cuáles son las debilidades. Por alguna razón, si Batman se arrepiente y quiere eliminar a ese héroe, puedes hacerlo. También puedes agregar nuevos héroes, así que por ejemplo, agreguemos a Superman. Aquí, Clark Kent tiene su identidad secreta y la debilidad es la kryptonita. Ok, así que ahora cuando guardemos esto, nuestro héroe estará aquí y sí, eso es básicamente lo que hace la aplicación. Si quieres eliminarlo, también puedes hacerlo.

Así que abramos un poco de código. Aquí tenemos nuestra ruta de héroes, que básicamente es lo que se va a renderizar cuando vayamos a la ruta de héroes Como viste anteriormente en mi explicación, estamos usando una carpeta para hacer algunas recuperaciones de datos. En este escenario, esta carpeta es responsable de autenticar a nuestro usuario y obtener nuestros datos de héroes para mostrarlos en nuestro menú que tenemos allí abajo. Y dentro de nuestra ruta llamamos a un gancho de datos llamado userloader para obtener nuestros datos y con esos datos vamos a renderizar nuestros héroes. Ahora es donde entramos en el enrutamiento anidado. Lo que permite el enrutamiento anidado es esta cosa divertida llamada outlet. Un outlet buscará en nuestras carpetas de archivos y verá si hay alguna carpeta creada con la ruta de héroes. En este escenario, encontrará dentro de las rutas que hay una carpeta llamada héroes y dirá ok, vamos a renderizarla. Lo primero que buscará es un índice y en este escenario nuestro índice dice acceder a la computadora mala y por eso nuestra primera página dice acceder a la computadora mala. Entonces esta es la parte anidada de los héroes, todas las cosas aquí que tenemos están dentro de héroes pero cada vez que renderizamos cosas en devoutlet, en las rutas anidadas, este es el índice de nuestra página de héroes. Ahora, si hacemos clic en él, vamos a la nueva ruta y volviendo a nuestro código, la nueva ruta está aquí, así que héroes slash new. Así es como puedes verificar la ruta en Remix. Aquí tenemos algunas cosas, pero básicamente lo que tenemos es una acción, que se activará cuando se envíe este formulario aquí. Así que tenemos nuestro formulario, activamos nuestra acción, esta acción está haciendo algunas cosas, una vez más está obteniendo la solicitud, gracias a la solicitud está autenticando a nuestro usuario, está obteniendo los datos del formulario que se completan en el formulario y luego algunas validaciones y está creando nuestro héroe. Y sí, eso es básicamente lo que hace esto. Ah, y también activa una redirección.

6. Introducción a las características de Remix

Short description:

Esta redirección es una respuesta 302 que aprovecha la web. Funciona obteniendo datos y devolviéndolos al usuario. Las rutas dinámicas en Remix permiten renderizar diferentes héroes según sus IDs. Remix proporciona stacks como Grunge, Indie y Wolf para facilitar el desarrollo de aplicaciones. En comparación con Next, Remix es más rápido al servir contenido dinámico y estático, proporciona una experiencia de usuario más rápida en redes lentas, maneja errores e interrupciones y desacopla las actualizaciones en tiempo real de los datos.

Esta redirección es básicamente una respuesta 302, como dije, aprovecha la web. Esta es una respuesta HTTP. Sí, así es como funciona. Y sí, eso es básicamente lo que hace. Ahora, es posible que te preguntes, ¿cómo voy a renderizar a todos los héroes? Porque si miras aquí, cada héroe debería tener un ID aleatorio. Permíteme agregar uno más para que puedas verlo. Sí, como puedes ver, el ID no es el mismo que el de Batman. No voy a crear una ruta para cada uno porque, bueno, eso no sería escalable. Aquí es donde aprovechamos las rutas dinámicas. Al agregar un espacio aquí, al agregar el signo de dólar y ponerlo, Remix dirá, ok, todo lo que esté dentro de Héroes y no esté especificado aquí, se incluirá en esta ruta. Esta ruta está haciendo algunas cosas, pero básicamente es el concepto general de un cargador. Una vez que se obtienen los datos, se devuelven. Estos datos son recogidos por los datos del usuario, y luego tenemos un formulario para activar o eliminar este formulario como una acción correspondiente. Y sí, eso es básicamente cómo funciona nuestra aplicación. De acuerdo. Entonces, para concluir, veamos algunas cosas que Remix puede facilitarnos. Los stacks de Remix son un conjunto de alternativas que podemos usar para comenzar a construir nuestra aplicación con Remix. Tenemos el stack Grunge, el stack Indie, el stack Wolf y prácticamente todos dependen de lo que quieras implementar, qué base de datos quieras usar, etc., etc. Y es genial. Pruébalo y compruébalo. Para concluir esta charla, abordemos la pregunta del millón, que es Remix versus Next. Bueno, aquí tenemos un código QR que puedes escanear. Esto te redirigirá al blog de Remix, donde tienen un estudio que compara Remix con Next. Y durante este estudio, llegaron a la conclusión de un par de cosas. Lo primero y más importante, Remix es tan rápido o más rápido al servir contenido dinámico y estático. E incluso permite una experiencia de usuario más rápida incluso en redes lentas, porque como dije, puedes hacer que tu servidor sea rápido, pero no puedes hacer que las redes de tus usuarios sean rápidas, y Remix nos facilita... Bueno, permitir una experiencia más rápida incluso en estas redes lentas, como está escrito aquí. Además, maneja automáticamente errores, interrupciones y condiciones de carrera, y esto es súper, súper genial. Ahorra mucho tiempo al no tener que implementarlo todo por ti mismo.

7. Reflexiones Finales sobre Remix

Short description:

Y todos los tiempos reales en Remix se desacoplan instantáneamente de los datos. Remix es súper genial y es muy emocionante ver todas las increíbles noticias que han estado surgiendo a su alrededor. Definitivamente veo un futuro muy, muy, muy grandioso y brillante para Remix y quiero quedarme para verlo en los próximos años. Gracias a todos por ser parte de RemixConf. Esta es una experiencia súper increíble estar aquí hablando y aprendiendo de todos los increíbles otros ponentes. ¡Nos vemos por aquí!

Y todos los tiempos reales en Remix se desacoplan instantáneamente de los datos. Entonces, ¿esto significa que tienes que dejar de usar Next? Bueno, supongo que depende de ti. Los frameworks van y vienen. Remix es súper genial y es muy emocionante ver todas las increíbles noticias que han estado surgiendo a su alrededor, y definitivamente veo un futuro muy, muy, muy grandioso y brillante para Remix y quiero quedarme para verlo en los próximos años.

Entonces, antes que nada, permítanme comenzar agradeciéndoles a todos ustedes. Gracias a RemixConf por tenerme aquí. Esta es una experiencia súper increíble estar aquí hablando con todos ustedes y aprendiendo de todos los increíbles otros ponentes sobre nuestro amor común en este momento, que es Remix. He sido Daniel Alfonso, este es un código QR que puedes escanear si quieres encontrarme en Twitter o enviarme un mensaje. Sí, muchas gracias. Espero que tengan el resto de un buen día y una semana increíble. Nos vemos por aquí. ¡Adiós!

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

React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a new web framework from the creators of React Router that helps you build better, faster websites through a solid understanding of web fundamentals. Remix takes care of the heavy lifting like server rendering, code splitting, prefetching, and navigation and leaves you with the fun part: building something awesome!
React Advanced Conference 2021React Advanced Conference 2021
39 min
Don't Solve Problems, Eliminate Them
Top Content
Humans are natural problem solvers and we're good enough at it that we've survived over the centuries and become the dominant species of the planet. Because we're so good at it, we sometimes become problem seekers too–looking for problems we can solve. Those who most successfully accomplish their goals are the problem eliminators. Let's talk about the distinction between solving and eliminating problems with examples from inside and outside the coding world.
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
Do you have a large product built by many teams? Are you struggling to release often? Did your frontend turn into a massive unmaintainable monolith? If, like me, you’ve answered yes to any of those questions, this talk is for you! I’ll show you exactly how you can build a micro frontend architecture with Remix to solve those challenges.
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.
JSNation Live 2021JSNation Live 2021
29 min
Making JavaScript on WebAssembly Fast
Top Content
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations in their JavaScript engines.Because of this optimization work, JavaScript is now running in many places besides the browser. But there are still some environments where the JS engines can’t apply those optimizations in the right way to make things fast.We’re working to solve this, beginning a whole new wave of JavaScript optimization work. We’re improving JavaScript performance for entirely different environments, where different rules apply. And this is possible because of WebAssembly. In this talk, I'll explain how this all works and what's coming next.
React Day Berlin 2022React Day Berlin 2022
22 min
Jotai Atoms Are Just Functions
Top Content
Jotai is a state management library. We have been developing it primarily for React, but it's conceptually not tied to React. It this talk, we will see how Jotai atoms work and learn about the mental model we should have. Atoms are framework-agnostic abstraction to represent states, and they are basically just functions. Understanding the atom abstraction will help designing and implementing states in your applications with Jotai

Workshops on related topic

React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.
React Advanced Conference 2021React Advanced Conference 2021
145 min
Web3 Workshop - Building Your First Dapp
Top Content
Featured WorkshopFree
In this workshop, you'll learn how to build your first full stack dapp on the Ethereum blockchain, reading and writing data to the network, and connecting a front end application to the contract you've deployed. By the end of the workshop, you'll understand how to set up a full stack development environment, run a local node, and interact with any smart contract using React, HardHat, and Ethers.js.
React Summit 2022React Summit 2022
136 min
Remix Fundamentals
Top Content
Featured WorkshopFree
Building modern web applications is riddled with complexity And that's only if you bother to deal with the problems
Tired of wiring up onSubmit to backend APIs and making sure your client-side cache stays up-to-date? Wouldn't it be cool to be able to use the global nature of CSS to your benefit, rather than find tools or conventions to avoid or work around it? And how would you like nested layouts with intelligent and performance optimized data management that just works™?
Remix solves some of these problems, and completely eliminates the rest. You don't even have to think about server cache management or global CSS namespace clashes. It's not that Remix has APIs to avoid these problems, they simply don't exist when you're using Remix. Oh, and you don't need that huge complex graphql client when you're using Remix. They've got you covered. Ready to build faster apps faster?
At the end of this workshop, you'll know how to:- Create Remix Routes- Style Remix applications- Load data in Remix loaders- Mutate data with forms and actions
Vue.js London Live 2021Vue.js London Live 2021
169 min
Vue3: Modern Frontend App Development
Top Content
Featured WorkshopFree
The Vue3 has been released in mid-2020. Besides many improvements and optimizations, the main feature of Vue3 brings is the Composition API – a new way to write and reuse reactive code. Let's learn more about how to use Composition API efficiently.

Besides core Vue3 features we'll explain examples of how to use popular libraries with Vue3.

Table of contents:
- Introduction to Vue3
- Composition API
- Core libraries
- Vue3 ecosystem

Prerequisites:
IDE of choice (Inellij or VSC) installed
Nodejs + NPM
JSNation 2023JSNation 2023
174 min
Developing Dynamic Blogs with SvelteKit & Storyblok: A Hands-on Workshop
Featured WorkshopFree
This SvelteKit workshop explores the integration of 3rd party services, such as Storyblok, in a SvelteKit project. Participants will learn how to create a SvelteKit project, leverage Svelte components, and connect to external APIs. The workshop covers important concepts including SSR, CSR, static site generation, and deploying the application using adapters. By the end of the workshop, attendees will have a solid understanding of building SvelteKit applications with API integrations and be prepared for deployment.
React Summit 2023React Summit 2023
106 min
Back to the Roots With Remix
Featured Workshop
The modern web would be different without rich client-side applications supported by powerful frameworks: React, Angular, Vue, Lit, and many others. These frameworks rely on client-side JavaScript, which is their core. However, there are other approaches to rendering. One of them (quite old, by the way) is server-side rendering entirely without JavaScript. Let's find out if this is a good idea and how Remix can help us with it?
Prerequisites- Good understanding of JavaScript or TypeScript- It would help to have experience with React, Redux, Node.js and writing FrontEnd and BackEnd applications- Preinstall Node.js, npm- We prefer to use VSCode, but also cloud IDEs such as codesandbox (other IDEs are also ok)