Optimizing Front-End Frameworks

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Implementar autocompletar en una aplicación web es en realidad bastante complicado si quieres hacerlo bien. Una buena implementación incluye la desactivación de rebote de la entrada, el estado de carga/error, abortar solicitudes en curso y más.

Resolver estos problemas a través de varios frameworks de front-end presenta problemas únicos y soluciones interesantes.

En esta charla, mostraré las 1000 (¡eso es 8 en binario 😉!) maneras en que implementé esto a través de React, Solid, Preact, Svelte, Vue, Angular, HTMX y Vanilla JS. Compararé y contrastaré estas soluciones, mostraré algunos de los patrones comunes que surgieron y también destacaré los frameworks que hacen esto más fácil que otros.

Los asistentes a esta charla se irán con nuevos trucos para probar en su framework favorito, así como una perspectiva sobre cómo se hacen las cosas en el panorama actual de frameworks de front-end.

This talk has been presented at JSNation US 2024, check out the latest edition of this JavaScript Conference.

CJ Reynolds
CJ Reynolds
29 min
18 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
En esta charla, el orador explora cómo se puede implementar el autocompletado de diferentes maneras a través de varios frameworks y bibliotecas como React, Vue, Angular, Preact, Svelte, Solid y HTMX. El orador discute los diferentes enfoques para manejar el estado y actualizarlo en cada framework. También cubren temas como la desactivación de rebote de la entrada del usuario, realizar llamadas a API y renderizar listas. La charla concluye con consideraciones para elegir un framework de front-end y la preferencia personal del orador por Svelte y Vue. También mencionan los beneficios de usar componentes web para reducir el código boilerplate. En general, la charla tiene como objetivo mostrar formas alternativas de desarrollar aplicaciones más allá de solo React y alentar a los desarrolladores a explorar y experimentar con diferentes frameworks.
Available in English: 1000 Ways to Autocomplete

1. Introducción al Autocompletado

Short description:

En esta charla, vamos a mostrar cómo se puede implementar el autocompletado de diferentes maneras, incluyendo temas como la eliminación de rebotes de entrada, la cancelación de solicitudes y el manejo de estados de error. También discutiremos cómo se puede usar para evaluar varios frameworks y bibliotecas como React, Vue, Angular, preact, Svelte, solid y HTMX. El orador, CJ, es un desarrollador web con experiencia en Vue y Angular, y también produce videos para el canal de YouTube Syntax patrocinado por Sentry, una plataforma de monitoreo de errores.

Es hora de comenzar. Vamos a empezar. Muy bien, todos. Bienvenidos, bienvenidos, y como dijimos, bienvenidos a 1,000 maneras de autocompletar. Así que probablemente hayas visto una interfaz de usuario como esta antes donde vas a ver mucho JavaScript. Esto es mucho JavaScript. Hay muchas preguntas enumeradas debajo de ella, y podrías haber implementado una interfaz de usuario como esta tú mismo, y en esta charla, vamos a mostrar cómo esto se puede implementar de muchas maneras diferentes.

Así que, y todas esas cosas que podrías considerar son cosas como eliminación de rebotes de entrada. Así que mientras el usuario está escribiendo, no quieres enviar una solicitud API por cada pulsación de tecla. Quieres enviar una solicitud por cada pulsación de tecla. Y si algo está sucediendo detrás de escena, queremos dar alguna indicación al usuario. Además, queremos cancelar solicitudes en curso. Así que si enviamos una solicitud y luego necesitamos enviar una nueva solicitud, necesitamos cancelar esa solicitud anterior, de lo contrario, la interfaz de usuario podría desincronizarse. Y también necesitamos preocuparnos por los estados de error. A nadie le gusta cuando la pantalla simplemente se vuelve blanca, así que deberíamos manejar eso también.

Así que esta es una gran manera de implementar un framework de front-end. Así que voy a mostrarte un gran ejemplo de esta pregunta de entrevista de front-end donde ella implementó autocompletar con React y habló sobre cómo es una buena pregunta de entrevista. De hecho, me han hecho una pregunta similar en una entrevista, y es una gran manera de practicar trabajando con un framework de front-end y también practicar con React. Así que después de ver este video, lo implementé yo mismo con React, pero realmente me hizo pensar, porque de alguna manera, es una buena manera de evaluar todos estos frameworks y todas estas cosas. Así que voy a hablar sobre cómo estamos haciendo con interfaces de usuario condicionales y renderizado de listas y actualizaciones de estado y efectos y actualizaciones de estado dependientes y gestión de estado asíncrono y todas estas cosas que realmente muestran cómo se hacen todas estas cosas a través de todos estos frameworks y bibliotecas. Así que en esta charla, voy a mostrarte cómo lo hice en Vanilla Js y React y Vue y Angular, preact, Svelte, solid y en HTMX.

Así que hola, mi nombre es CJ, como se dijo, actualmente soy un desarrollador web, he estado trabajando con Vue y Angular, y estoy trabajando con Vue y Angular, y estoy trabajando con Vue. ¿Quién aquí escucha el podcast Syntax? Sí, sí. Esperamos ver más manos más tarde. Y cada episodio del podcast Syntax es traído a ustedes por Sentry, así como cada video, así que de hecho hago videos para el canal de YouTube Syntax y Sentry es una plataforma de monitoreo de errores. Puedes agregarlo a tu aplicación en producción, y cualquier error que ocurra se envía de vuelta al panel de control, y luego puedes volver al panel de control, y luego puedes volver al panel de control, y luego puedes volver al panel de control. Así que puedes volver al panel de control en sentry.io. Ese era yo. Vamos a aprender quiénes son todos ustedes. ¿Quién aquí escribe JavaScript puro a diario? Vamos a ver una mano.

2. Explorando Diferentes Frameworks

Short description:

Esta charla es para desarrolladores de React para ver cómo se hacen las cosas en diferentes frameworks. El orador utiliza las últimas versiones de cada framework y demuestra la forma preferida de hacer las cosas, excepto en Angular, donde se disculpa por cualquier deficiencia.

Probablemente la mayoría de ustedes. Quizás no exclusivamente Vanilla Js, pero creo que muchos de nosotros lo hacemos. ¿Quién aquí escribe React a diario? Esto es como el 80, 90% de la audiencia. Eso es increíble. ¿Quién aquí escribe Vue? ¡Sí! Bien. Como tres o cuatro manos. Increíble. Bien. Entonces, ¿qué hay de Angular? ¿Alguien de Angular? Uno. ¿Alguien más? Bien. ¿Dos? Bien. Genial. Um, ¿alguien escribe Preact? Sí, bien. ¿Qué hay de Svelte? ¿Ninguna mano para Svelte? Bien, bien. Te veo. Es difícil de ver. Hay luces brillantes. ¿Qué hay de solid? ¿Alguien escribe solid? Bien. Somos una comunidad de React. Tenemos mucho que aprender. Honestamente, esta charla es realmente para desarrolladores de React para ver todas las formas en que se hacen las cosas en todos estos frameworks.

Muy bien. Vamos también a establecer algunas expectativas porque para todos estos ejemplos que voy a mostrarles siempre estoy usando la última y actual versión de cada uno de los frameworks. Porque hay muchas maneras de hacer las cosas en cada uno de estos. Yo elegí la última versión y luego hice mi mejor esfuerzo para mostrar la forma preferida de hacerlo consultando la documentación, leyendo guías de la comunidad, excepto en Angular, por lo cual estoy eternamente apenado. Si escribes Angular, ven a verme después. Tengo brillantes stickers de Angular para ti. Hice mi mejor esfuerzo. Pero hay algunas áreas donde señalaré que probablemente podríamos haber usado RxJS o algo así.

3. Tracking Form Input State

Short description:

Esta parte se centra en el código y en cómo los diferentes frameworks manejan el renderizado. También enfatiza el uso de ejemplos de código, con una advertencia de que habrá mucho código. Se introduce el tema del estado de entrada de formularios, específicamente cómo rastrear la entrada del usuario y almacenarla en el estado. En vanilla JS, el estado se almacena dentro del DOM usando event listeners para la entrada.

Pero no tuve el tiempo. Tuve que hacer todas las otras cosas. Y todos estos ejemplos realmente se van a centrar en el código. ¿Cómo hacemos realmente estas cosas? Cómo funciona. ¿Cómo hacen estos frameworks el renderizado? ¿Está compilado? ¿Hay un virtual DOM? Eso es para una charla diferente. Esto se trata de todo el código. Qué escribimos como desarrolladores para hacer estas cosas.

Y también mostraré estos ejemplos de forma aislada. Tienes que usar tu imaginación para combinar todo lo que te mostré para poder demostrar todos estos aspectos. Muy bien. Y última advertencia, aquí hay código. Va a haber un montón de código. Pero te animo, si empiezas a sentirte abrumado, intenta estar atento a tu framework favorito como React. O tal vez cuando empieces a ver que aparece tu framework favorito, espera a verlo aparecer. Porque como dije, vas a ver mucho código.

Muy bien. Vamos a entrar en ello. Vamos a hablar primero de cómo estamos manejando el estado de entrada de formularios. Cuando estás construyendo esta UI, queremos hacer un seguimiento de lo que el usuario está escribiendo en este cuadro de entrada aquí. Y típicamente almacenamos eso en el estado. Así que podemos usarlo más tarde cuando estemos haciendo esa solicitud de API. Ahora, dentro de vanilla JS, podemos obtener el elemento del DOM con query selector. Imagina que tenemos algo de HTML. Y hay un elemento en la página con ID search. Podemos obtenerlo. Y luego podemos agregar un event listener para la entrada. Así que cada vez que hay una pulsación de tecla dentro de allí, se llamará a este callback y podemos usar ese valor. Así que en vanilla JS, el estado está realmente como dentro del DOM. Técnicamente, podrías sacarlo. Hay muchas maneras de implementar esto.

4. Handling State in Different Frameworks

Short description:

En React, usamos el hook useState para almacenar y actualizar el estado. Preact introdujo signals, que nos permiten actualizar el estado usando el hook useSignal. Solid combina los conceptos de Preact y React, usando la función createSignal para declarar y actualizar valores reactivos. En Vue, tenemos la función ref, que se utiliza para declarar valores reactivos.

Pero en este caso, cada vez que se ejecuta input.value, va a tener el último valor. Así que el estado está como almacenado dentro del DOM.

Dentro de React, tenemos nuestro hook useState. Pasamos ese valor inicial como una cadena vacía. Y esto nos devuelve el valor actual de search. Y luego una función que podemos llamar para actualizarlo. Así que cada vez que se llama a setSearch, eso establece el último valor, vuelve a renderizar, search tendrá el último valor.

Ahora, Preact es en realidad como una versión compatible con la API de React pero más ligera. Como este código que estás viendo ahí funcionará directamente dentro de Preact. Pero Preact en realidad introdujo signals. Así que todos los ejemplos que voy a mostrar hoy con Preact serán con signals. Tienen este hook llamado use signal donde puedes pasar el valor inicial y luego usar el mismo hook para actualizarlo. Así que el primer ejemplo que voy a mostrar es un useSignal donde puedes pasar el valor inicial y luego obtienes esa signal. Y este es un objeto que tiene una propiedad dot value que siempre tendrá el último valor encima. Y luego podemos cambiar eso o sobrescribirlo para actualizarlo a un valor más nuevo.

Y en Solid, también tenemos signals. Pero es como una combinación de Preact y React. Así que tenemos este createSignal. Pasamos el valor inicial. Esto nos va a devolver un getter y un setter. Esa es una de las principales diferencias aquí. Este search es una función que necesitamos invocar en nuestro render para obtener el último valor. Pero eso es una señal para el compilador de que ese único lugar que llamó a ese getter realmente necesita ser actualizado cada vez que el valor cambia. Y luego setSearch, muy similar, lo llamamos para actualizar el estado.

Ahora dentro de Vue, tenemos esta función de composición llamada ref. Ahora, si estás familiarizado con React, podrías pensar, oh, eso es como useRef. Técnicamente se puede usar para eso. Pero siempre usamos esto para declarar valores reactivos. Esto es básicamente declarar un valor. Así que si queremos declarar un valor, podemos usar esta función.

5. Updating State in Different Frameworks

Short description:

En Svelte, usamos la directiva $state para rastrear cambios en las variables y actualizar la vista. En Angular, definimos el estado usando form control y lo actualizamos a través de callbacks. En React, usamos el evento on change para actualizar el estado y establecer el valor del input.

Y luego si queremos acceder a él en nuestros códigos de JavaScript, podemos usar search.value. Así que se parece un poco a una signal. Y la forma en que lo usas es como una signal. Pero eso existía antes de que el término signal se volviera súper popular en el panorama actual de las cosas.

Y dentro de Svelte, aquí en este ejemplo de Svelte 5, estamos usando el estado del signo de dólar. Y así en el servicio, esto se ve como todos los demás. Todos los demás. Pero esto es en realidad una directiva del compilador. Es en realidad un indicador para el compilador para decir, oye, search es una variable que necesitamos rastrear. Si alguna vez cambia, actualiza la vista. Así que en realidad no es una llamada a función. Pero se parece un poco a eso.

Y luego en Angular, falta un montón de código aquí. Porque tenemos todas estas importaciones y decoradores. Pero en última instancia, vamos a estar usando el form control, que se introdujo en Angular 18. Y tus componentes de Angular son en realidad una clase. En este caso, tendremos una propiedad search, igualada a una instancia de form control. Así es como definimos el estado. Ahora, ¿cómo actualizamos realmente el estado? Oh, lo siento. HTML es solo un input. Porque es HTML y el estado se almacena en el DOM. Nada demasiado loco allí. Pero ahora, ¿cómo actualizamos realmente ese estado?

Dentro de React, necesitamos pasar un callback al método on change allí. Así que cuando este valor de input cambia, esta función se llama. Llamamos a nuestro setter, actualizamos el valor. Y luego podemos establecer el atributo de valor para que sea el último valor de search allí. Pero esto es como una pequeña mentira blanca. Porque bajo el capó en realidad es el valor de on input. Así que si decimos on input, obtendremos el evento on input. Pero solo nos dejan usar el evento on change.

6. Updating State in Other Frameworks

Short description:

En Preact, sobrescribimos directamente el valor de la signal para actualizarlo. En Solid, usamos el evento on input e invocamos el getter para indicar el lugar que necesita actualización. Vue tiene una directiva incorporada V model para actualizar el valor del input. En Svelte, podemos enlazar al valor usando el accesor de variable de estado con el signo de dólar.

Y dentro de Preact, realmente usas el evento on input. Así que esto es muy similar. Pero como mencioné, esa signal, podemos sobrescribirla directamente. Así que no tenemos que hacer nada especial. No tenemos que llamar a un setter. Podemos simplemente establecer el valor de la signal para que sea el último valor. Y luego para pasar el valor como la prop allí, simplemente pasamos search.value.

Ahora, Solid, de nuevo, es un poco como una combinación de React y Preact. Así que tenemos que usar ese on input. Y luego tenemos que llamar a nuestro setter para realmente actualizar el valor. Pero notarás que necesitamos invocar search. Así que ese es nuestro getter. Pero esa invocación es un indicador para el compilador de Solid de que este es un lugar que realmente necesita ser actualizado si search alguna vez cambia.

Ahora, Vue en realidad tiene una directiva incorporada. Se llama V model. Así que pasamos una variable de estado a ella. Y si eso alguna vez cambia, este input realmente será cambiado. Y luego podemos actualizar eso detrás de las escenas. Ahora, V dash model es solo azúcar sintáctica. Bajo el capó, está agregando un listener de cambio. Está enlazando el valor. Pero es bueno que esto esté incorporado. Y técnicamente, podrías hacerlo manualmente si quisieras. Pero lo hacemos tan a menudo, nos dan una pequeña directiva agradable para ello.

Y en Svelte, también hay una manera de enlazar al valor. Así que podemos usar el bind colon, especificar cualquier atributo, y luego poner un accesor de variable de estado con el signo de dólar dentro de allí. Y luego podemos hacerlo en el control de formulario. Pero, de nuevo, esto es realmente solo azúcar sintáctica. Todavía está agregando un listener de cambio. Todavía está actualizando el valor allí.

7. Mutating and Overwriting State

Short description:

Dentro de Angular, usamos el control de formulario con corchetes para especificar el último valor. React y Svelte tienen manejo de estado manual, mientras que otros frameworks tienen algunas características mágicas. React y Solid sobrescriben el valor del estado, mientras que el resto permite la mutación directa.

Dentro de Angular, ahora que estamos usando este control de formulario, podemos usar el control de formulario con corchetes y especificar el último valor dentro de allí. Y en HTML, sigue siendo solo el input porque el estado se almacena en el DOM. Muy bien. Podemos de alguna manera, mirando todos estos ejemplos, podemos categorizarlos de diferentes maneras. Estado manual, estoy llamando a React, Svelte, y luego todos los demás tienen algo de magia añadida. Tenemos directivas personalizadas, cosas personalizadas que podemos usar. Hay un poco de magia. Y luego, la otra forma en que puedes ver estos ejemplos es que algunos de ellos se categorizan como inmutables, algunos de ellos son mutables. En tanto React como Solid, básicamente sobrescribimos el último valor del estado cada vez que queremos cambiarlo. Pero para todos los otros ejemplos, podemos simplemente mutar directamente el estado.

8. API Calls and Effects

Short description:

Vamos a omitir el renderizado condicional y saltar a async y efectos. Llamamos a la API basado en el valor del estado. React usa el hook use effect. Otros frameworks tienen mecanismos similares. Solid tiene create effect, Svelte usa la runa de efecto del signo de dólar, y Vue tiene una función de efecto de observación. Angular tiene un enfoque diferente, suscribiéndose a los cambios de búsqueda y llamando a la API.

ejemplos, podemos simplemente mutar directamente el estado. Muy bien. Estoy quedándome un poco sin tiempo, así que vamos a omitir el renderizado condicional y luego saltar directamente a async y efectos.

Pero si quieres ver esto, definitivamente ven a verme después, y hablaremos sobre ello. Bien. Así que estamos haciendo un seguimiento del estado, lo estamos actualizando. Cuando el estado cambia, digamos que queremos llamar a una API para obtener esos datos basados en cuál es el valor actual del estado. Para esto, vamos a usar el estado. Ahora, en JavaScript puro, literalmente podemos llamar a nuestra API dentro de nuestro listener de eventos allí. Y así, imagina que git results es una función que tiene fetch dentro de ella. Hace el trabajo duro de llamar a la API y obtener los resultados.

Pero debido a que este callback se va a llamar, cada vez que el valor del input cambia, git results va a llamar a la API en cada cambio allí. Dentro de React, usamos el usuario. Y así vamos a usar el usuario. Y vamos a llamar a la API. Y así dentro de React, vamos a hacer el hook use effect. Y notarás aquí, estamos pasando ese array como el último argumento, y ese es nuestro array de dependencias. Así que cada vez que el valor de búsqueda cambia, este use effect se va a volver a ejecutar. Y así, esencialmente, si estamos actualizando ese valor de búsqueda en el input, cada vez que cambia, este código se volverá a ejecutar, llamará a la API. Todos los otros frameworks son muy similares. Cada vez que estamos accediendo a signal.value, es capaz de hacer un seguimiento de eso, y saber que necesita volver a llamar a esto si cambia. Similar dentro de Solid, tienen create effect, y esto simplemente se volverá a ejecutar cada vez que sus dependencias cambien. Y nuevamente, estás viendo esa invocación justo allí. Así que estamos llamando, estamos invocando el getter, que es una señal para decir, hey, si esto cambia, ese código necesita volver a ejecutarse. Dentro de Svelte, ellos introdujeron la runa de efecto del signo de dólar aquí en Svelte 5, y podemos hacer algo similar, así que cada vez que cambia, simplemente llama a la API. Vue tiene una función de efecto de observación incorporada, muy similar, cada vez que search.value cambia, va a volver a ejecutar esta función. Angular, es un poco diferente, y aquí es donde empiezo a disculparme por el ejemplo. Así que en este caso, estamos suscribiéndonos a los cambios de búsqueda, que era esa propiedad de control de formulario, y luego si alguna vez cambia, estamos llamando a nuestra API. Este es un lugar donde potencialmente usarías algo como RxJS. Hay otras formas de hacerlo.

9. ng on init and Automatic Tracking

Short description:

ng on init es como component did mount. Seguimiento manual en React, seguimiento automático en otros frameworks. Especificar array de dependencias en React, recuerdo automático en otros.

Esto es lo que obtienes por ahora, y también que ng on init es una especie de como nuestro component did mount. Cuando el componente se monta, ese código se ejecutará para configurar esa suscripción. Y luego en HTMX, podemos agregar este atributo hx-get. Así que cada vez que el input cambia, eso va a disparar una solicitud a slash search. Así que estoy categorizando estos de dos maneras. Tienes seguimiento manual, que es React, y luego todo lo demás es seguimiento automático. Así que en React, tienes que especificar el array de dependencias. Muchas veces tenemos reglas de ESLint que nos recordarán si olvidamos una dependencia o algo así, pero todos los demás, porque están basados en señales, pueden automáticamente recordar nuestros efectos y no tenemos que especificar manualmente ese array de dependencias.

10. Debouncing and Cleanup Functions

Short description:

Debouncing: esperar a que el usuario termine de escribir y luego llamar a la API. Implementación usando set timeout. Limpiar el timeout anterior si se llama de nuevo al callback de entrada. Devolver función de limpieza desde use effect en React. Enfoque similar en Preact, Svelte y Solid. Truco de Svelte 5 para rastrear dependencias en callbacks anidados. La función on cleanup de Solid permite anidación. Angular combina ejemplo vanilla con suscripción. Vue.js proporciona función on cleanup como argumento de callback.

Ahora hablemos de debouncing. Así que en este ejemplo, mientras el usuario escribe, estamos enviando una solicitud en cada pulsación de tecla, y esto es lo que queremos evitar, porque básicamente está saturando nuestra API, y realmente puede ralentizar las cosas. Lo que queremos es esperar a que el usuario termine de escribir, y luego llamar a la API. Así que el usuario escribe, y luego, una vez que ha terminado durante 200 milisegundos, llamamos a la API. Esto es debouncing.

Y la forma en que lo implementamos es simplemente con un set timeout. Así que te mostraré el ejemplo en JS vanilla primero, donde esencialmente tenemos un ID de timeout, y comienza vacío, pero luego cada vez que el input cambia, limpiamos el ID de timeout actual. Y así, clear timeout está integrado en el navegador web, y también vamos a usar el ID de timeout para realmente establecer un timeout para el usuario. Así que básicamente, comenzamos limpiando este timeout, y luego está bien si realmente pasas undefined. No va a dar error. Pero luego establecemos un timeout. Así que decimos, está bien, en 200 milisegundos, entonces llamaremos a la API. Pero si el callback de entrada se llama de nuevo, vamos a limpiar el anterior. Así que básicamente, mientras el usuario escribe, establecemos un timeout, y luego inmediatamente lo limpiamos, porque escribieron otro carácter. Así que lo establecemos, lo limpiamos, lo establecemos, lo limpiamos, y luego finalmente, si no escriben, lo limpiamos. Así que estamos alquilando esta misma cosa, pero en combinación con nuestro use effect.

Así que para React, la forma en que podemos limpiarlo es devolviendo una función desde nuestro use effect. Y así, esto se conoce como nuestra función de limpieza, ¿verdad? Establecemos el timeout almacenado dentro de ese ID de timeout, pero si el término de búsqueda cambia alguna vez, necesitamos limpiar ese timeout, y así la función que devolvemos desde el use effect se va a invocar, limpiar el timeout, y básicamente, lo limpiará, lo limpiará, lo limpiará, hasta que el usuario termine de escribir, y luego haga esa solicitud para obtener resultados. Todos los demás frameworks, muy similares. Así que en Preact, podemos devolver un callback desde nuestro use signal effect. En Svelte, también podemos devolver un callback desde nuestro efecto de signo de dólar. La única cosa a tener en cuenta aquí, sin embargo, es que Svelte 5 no rastrea automáticamente el acceso a dependencias dentro de callbacks anidados.

Así que aquí es donde estamos accediendo a la búsqueda, pero porque eso está en un callback anidado, Svelte no lo rastrea automáticamente. Así que el truco aquí es simplemente deshacerse de eso y luego simplemente acceder a él, y básicamente, como un no-op, simplemente, oye, necesito búsqueda, y luego el compilador de Svelte sabrá que necesita volver a ejecutar esta función cada vez que la búsqueda cambie, y nuevamente, estamos devolviendo esa función de limpieza. Por supuesto, esto es un truco. Probablemente hay mejores maneras de hacerlo, pero sí, y luego en Solid, muy similar, pero tienen esta función on cleanup que simplemente importas de la biblioteca de Solid. Así que no hay necesidad de devolver un callback, y lo bueno de eso es que realmente puedes llamarlo en cualquier lugar. Así que si tu función de limpieza por alguna razón necesita estar anidada en un callback o algo así, puedes hacerlo con ese on cleanup. Dentro de Angular, esto es un poco de nuevo, me disculpo, pero esto es como el ejemplo vanilla combinado con nuestra suscripción.

11. Cleanup Functions in Different Frameworks

Short description:

Vue.js, similar a Solid, proporciona la función on cleanup como argumento de callback. HTMX tiene un atributo incorporado HX trigger con un retraso de 200 milisegundos. Todos los frameworks requieren establecer timeout e implementar la función de limpieza como un callback.

Así que si el timeout cambia, lo limpiamos y luego lo llamamos de nuevo si el valor de búsqueda cambia, y luego con Vue.js, bastante similar, pero ellos te dan la función on cleanup como argumento de callback. Así que podemos esencialmente establecer el timeout y luego pasar nuestro callback a on cleanup, pero esto es similar a Solid en que técnicamente podríamos llamarlo en cualquier lugar que quisiéramos. No tenemos que devolver una función, y luego con HTMX, tienen este atributo incorporado llamado HX trigger, y básicamente estamos diciendo que estamos escuchando key up y changed, pero con el retraso de 200 milisegundos. Así que esto no hará una solicitud a slash search a menos que el evento haya ocurrido hace 200 milisegundos y no se haya disparado uno nuevo. Así que ellos tienen una especie de forma incorporada de hacer ese set timeout. Y así realmente todos estos, excepto HTMX, es básicamente establecer tu timeout y luego limpiarlo y asignar algún tipo de callback. La forma en que haces el callback varía, pero básicamente tienes, como, una función de limpieza.

12. List Rendering in Different Frameworks

Short description:

En vanilla JS, creamos y añadimos manualmente elementos de lista para cada resultado de la API. React y Preact usan map con una key para rastrear cambios en los elementos. Solid tiene un componente incorporado llamado four para acceder a señales en un array. Vue tiene la directiva V4 con sintaxis de handlebar. Angular usa un lenguaje específico con la sintaxis at four. Svelte tiene su propia sintaxis personalizada con hash each. El renderizado de listas en HTMX depende del empaquetado.

Bien. Hablaremos sobre el renderizado de listas. Vamos a pasar rápidamente por esto, porque tengo más cosas que mostrarte, pero básicamente en vanilla JS, tomamos ese elemento de resultados de la página y luego lo añadimos. Así que este es un elemento de lista que vamos a crear. Así que vamos a crear un elemento de lista para cada resultado que obtuvimos de la API y luego añadir todos esos. También podrías establecer innerHTML. Podríamos construir una cadena HTML o algo así, hay muchas maneras de hacerlo, pero en este caso, estamos creando manualmente cada elemento.

Y en React, por supuesto, podemos simplemente usar map. Lo que hay que tener en cuenta aquí es que necesitamos una key, porque necesitamos hacer un seguimiento de cada elemento en caso de que este array cambie. Así que esa key permite al mecanismo del DOM virtual asegurarse de que si algo en el array cambia, todavía estamos bien. Preact, muy similar, pero simplemente estamos accediendo al valor de la señal. Solid, un poco diferente. Tienen este componente incorporado llamado four, y luego tiene en cada propiedad donde puedes pasar una expresión. En este caso, estamos accediendo a resultados, que es una señal. Y esto básicamente necesita existir, porque los componentes solid no se vuelven a renderizar una y otra vez. Así que necesitamos asegurarnos de que estamos accediendo a todas las señales en el array. Y así, si solo hicieras un map simple, no sabría que necesita actualizarse. Por eso te dan ese método. Y luego pasas un callback y obtienes tu renderizado.

Vue tiene una directiva incorporada llamada V4 que te permite hacer item en items. Luego puedes pasar la key, porque Vue también se basa en el DOM virtual. Y también tienen esta sintaxis de handlebar. Y dentro de Angular, tienen su propio pequeño lenguaje aquí. Así que at four, item en items. También te permiten hacer un seguimiento de una key específica y están usando handlebars dentro. Y luego Svelte tiene su propia sintaxis personalizada también. Así que esto es hash each array as item. Y luego podemos realmente renderizarlo usando solo llaves simples allí y luego cerramos el bloque con slash each. Y en HTMX, realmente depende de tu empaquetado. Así que este es como el ejemplo completo con HTMX, donde no pude mostrar esto con renderizado condicional, pero si hay una solicitud a slash search, va a mostrar progreso, porque ese es el indicador de que algo está sucediendo.

13. Conclusions and Next Steps

Short description:

Nos falta la implementación del servidor. React y Preact usan JSX. Conclusión: Usar HTMX. ¿Quién va a escribir vanilla JS? ¿Quién va a seguir escribiendo React? ¿Quién va a probar Vue? ¿Quién va a probar Angular? ¿Quién va a probar Preact? ¿Quién va a probar Svelte? ¿Quién va a probar Solid? Próximos pasos: Considerar el ecosistema, recursos, comunidad y más al elegir un framework de front-end.

Y luego, cuando volvemos a los resultados, el objetivo es este elemento de resultados aquí. Y así, lo principal a tener en cuenta es que nos falta la implementación del servidor, porque el servidor realmente necesita devolver esa lista de HTML que realmente añadimos a la página. Y así, todos estos tienen un lenguaje específico de dominio. Creo que incluso React y Preact, aunque es solo un map, sigue siendo un extraño JSX. Así que estoy llamando a todo esto lenguaje específico de dominio.

Así que ahí estaba el código. Vamos a llegar a algunas conclusiones y a dónde ir desde aquí. Las cosas que no pude cubrir son el manejo de errores, la cancelación de solicitudes, la accesibilidad y muchas otras cosas, pero en última instancia, la conclusión aquí es simplemente usar HTMX. Estoy bromeando. Vamos a sentir la sala. Así que sé que esto fue un recorrido vertiginoso y no pudimos ver todas las piezas, pero ¿quién aquí va a ir a casa y simplemente escribirse un poco de vanilla JS? ¿Nadie? Bien. ¿Quién va a ir a casa y seguir escribiendo React? Sí, creo que muchos de nosotros tenemos que hacerlo, porque es nuestro trabajo. ¿Quién va a ir a casa y escribir un poco de Vue? Vue fue genial, ¿verdad? Vif, V4, Vmodel, tiene muchas cosas buenas. ¿Quién va a ir a casa y probar Angular? Me disculpo. Sí, tenemos dos conversos, tal vez no estabas aquí antes, pero, sí, Angular es el camino a seguir. ¿Quién va a probar Preact? Preact es bastante dulce, y lo bueno de su biblioteca de señales es que realmente puedes usar eso en tu aplicación React, y puedes simplemente mostrarme tu aplicación React, y está allí, y puedes simplemente mirarlo. Tienen un Preact React signals, y puedes seguir usando tu mismo viejo React y añadir señales dentro de él. ¿Quién va a probar Svelte? Unos pocos, ¿sí? También es realmente genial. ¿Quién va a probar Solid? Ninguna mano. Personalmente, creo que si nos estamos inclinando hacia nuevos frameworks que hacen cosas de nuevas maneras, creo que Solid es probablemente la rampa de acceso más fácil para cualquier desarrollador de React, porque la sintaxis se ve realmente bien para ello. ¿Quién va a probar Svelte? Bien. De acuerdo. Tenemos al menos tres o cuatro conversos. Eso es increíble. Bien. Y luego, sí, hablemos sobre los próximos pasos. Así que, de nuevo, solo te mostré el código. No hablé sobre todas las otras cosas que necesitas considerar cuando estás eligiendo un framework de front-end. El ecosistema, ¿verdad? ¿Hay bibliotecas para mapas y gráficos y todo lo demás? ¿Hay bibliotecas para trabajar con componentes de UI, y cuáles son los recursos disponibles, verdad? ¿Hay muchos ejemplos por ahí? ¿Hay respuestas en stack overflow? ¿Fue la IA entrenada en Stack Overflow? ¿Hay una comunidad? ¿Tienen un servidor de Discord activo? ¿Hay problemas activos en GitHub o discusiones? ¿Y hay conferencias y encuentros? Así que, todo esto también importa, creo, cuando estás eligiendo tu framework de front-end. No se trata solo del código.

14. Considering Frameworks and Choosing a Path

Short description:

Considerar el rendimiento y diferentes frameworks. Tu preferencia, experiencia pasada y la situación actual juegan un papel en la elección de un framework de front-end. No te limites a React. Sé abierto a explorar y experimentar con otros frameworks. ¿Eres un desarrollador de JavaScript o estás ligado a un framework específico? Me inclino hacia Svelte y Vue. Svelte se siente como la mejor versión de Vue. Hay características como el declarative await en Svelte que pueden simplificar tu código.

tu framework de front-end. No se trata solo del código. Estas son las cosas a considerar también, y potencialmente un tema para una futura charla. La otra cosa es sobre el rendimiento y cómo estas cosas realmente funcionan, ¿verdad? Así que, algunos de estos frameworks son compilados en lugar de tener código en tiempo de ejecución, y algunos de ellos usan un DOM virtual. Algunos de ellos no.

Algunos de ellos tienen, como, un ciclo de renderizado que funciona de cierta manera. Algunos de ellos tienen actualizaciones de grano fino, y todo eso es algo que podrías tener en cuenta también. Y, por supuesto, no va a haber una respuesta correcta. Creo que se reduce a la preferencia, tu experiencia pasada. Personalmente, uno de los primeros frameworks de front-end que usé fue Vue.js, como, la versión 1.4 o lo que sea, y así, para mí, tiendo a gravitar hacia Vue porque se parece a esas cosas más antiguas. Algunos de ustedes podrían haber escrito solo React en su vida, así que podrían no haber escrito React en su vida, así que definitivamente tu experiencia pasada entra en juego. La otra cosa es, como, ¿qué es correcto en el momento? Como, si trabajas en una empresa y estás construyendo una nueva aplicación, como, ¿qué es popular ahora mismo, o qué saben mis desarrolladores? Y tal vez tomes la decisión entonces. Y también, como dije, lo que usas en tu trabajo. Muchos de nosotros no tenemos elección. Simplemente tienes que usar lo que usas. Y en última instancia, creo que también se reduce a las vibraciones.

Como, ¿con qué vibra más? Y en última instancia, como, la razón por la que incluso di esta charla es que quiero animarte, como, a explorar, experimentar, salir de tu burbuja de confort de, como, escribir todo con React y ver que hay formas geniales de hacer las cosas del otro lado. Y la última pregunta que te dejaré es tal vez dejar de pensar en ti mismo como un desarrollador de React. Como, ¿cómo respondes a esta pregunta? Como, ¿eres un desarrollador de React? ¿Eres un desarrollador de Vue, un desarrollador de preact, un desarrollador de solid HTML, un desarrollador de insertar framework de la semana? ¿O eres un desarrollador de JavaScript? Muy bien. Muchas gracias. Tenía una pregunta para empezar. Así que, sé que pusiste la cosa de HTML ahí, pero ¿cuál es tu, como, si tuvieras que elegir uno, qué método elegirías? Ahora mismo me inclino hacia Svelte y también Vue. Como dije, tengo un largo amor por Vue. Lo he estado usando durante mucho tiempo. Y cuando Svelte salió fue muy, se sintió como la mejor versión de Vue. Y luego, cuando salió Svelte 5, fue como la segunda mejor versión de Vue. Y luego, cuando empecé a usarlo, estaba tan emocionado. Estaba como, oh, voy a usar esto. Y luego, cuando salió Svelte 5, inicialmente lo rechacé en Runes. Estaba como, oh, no, se está volviendo más complejo, pero me he acostumbrado a ello.

QnA

Implementing Debounce Functionality

Short description:

Con Solid, hay otras formas de escribir esto, pero Svelte o Vue serían mi respuesta. Hay diferentes maneras de implementar debounce, como usar el hook use debounce o una biblioteca como use debounce value. Elegí mostrarte cómo hacerlo manualmente. Sin embargo, usar una biblioteca puede ser más conveniente, especialmente para bases de código más grandes. Implementar estas funcionalidades es una buena manera de probar tu comprensión de los frameworks de front-end.

Y luego con Solid, también tienen este componente switch. Así que hay otras formas de escribir esto que no son solo lo que mostré aquí. Pero Svelte o Vue serían mi respuesta allí.

Bien. Bien. Y tengo una pregunta aquí de un anónimo. ¿No preferiríamos adjuntar la solicitud al callback adjunto al callback de debounce de entrada en lugar de escribir en effect para reaccionar a un cambio de estado? Depende, sí. Así que de nuevo, hay muchas maneras de implementarlo. También están, como, si eres un desarrollador de React, hay una biblioteca, como, use debounce value, ¿verdad? Y así, en lugar de combinar la actualización de estado con la actualización de estado, también hay una biblioteca que se llama use debounce. Y así, en lugar de combinar la actualización de estado con la solicitud, podrías realmente tener una variable de estado separada que solo se actualiza en debounce y luego tener un use effect separado que dependa de eso. Creo que eso es un poco a lo que se refieren. Definitivamente un enfoque válido. Simplemente no uno que mostré.

Y a continuación, otra pregunta anónima. ¿Por qué no simplemente usar el hook use debounce? Oh, bien. Porque quería mostrarte cómo hacerlo tú mismo. Te voy a mostrar cómo hacerlo. Así que, como, tengo una biblioteca que estoy usando. Esa es la razón principal. Y un poco ya hablé de ello. Por supuesto, si tienes una base de código más grande, no querrás estar escribiendo esto desde cero en cada lugar. Podrías recurrir a una biblioteca que implemente use debounce value. Sí. Pero es un gran punto. Creo que para muchas de estas cosas, hay realmente bibliotecas que implementarán todo esto por ti. No tienes que escribir nada del código. Creo que como un ejercicio en solo ver cómo funcionan las cosas en estos frameworks es una buena oportunidad para hacerlo. Hay una pequeña versión de esto donde puedes usar las teclas de flecha hacia abajo para seleccionar los elementos. Creo que es una buena pregunta de entrevista porque no es solo código de fuga. Es como, ¿conoces los fundamentos de cualquier framework de front-end? ¿Puedes realmente, como, implementar estas cosas? Bien.

Thoughts on lit and web components

Short description:

No he pasado mucho tiempo con lit y web components, pero pueden ayudar a reducir el boilerplate. Aprendí diferentes lenguajes haciendo videos en YouTube y comparándolos. Quiero mostrar que hay formas más interesantes de hacer las cosas, no solo React. Gracias por las preguntas, y siéntanse libres de hacer más. Califiquen la charla en Slido y revisen el horario para la próxima sesión. ¡Gracias CJ!

Otra más. Solo tenemos un par de preguntas más aquí. ¿Cuáles son tus pensamientos sobre lit y o web components? Sí. No he pasado mucho tiempo con ellos. Creo que se reduce a, como, cuando estás incluso con lit, que de alguna manera te ayuda a reducir el boilerplate cuando estás construyendo web components, todavía hay mucho código extra que tienes que escribir potencialmente para, como, la gestión de estado. Tal vez recurras a otra biblioteca. Y podría terminar pareciendo un poco como el ejemplo de vanilla. Pero honestamente, no he pasado mucho tiempo con ellos. Probablemente debería.

Bien. Tenemos una última pregunta. Sé que has estado escribiendo durante mucho tiempo. ¿Cómo conoces todos estos lenguajes? Tengo mucho tiempo libre. Y así hago videos en YouTube para syntax. Y creo que parte de mi trabajo y supongo que también lo que estaba haciendo para Coding Garden antes de que me contrataran en syntax es muchas comparaciones. Mucha gente está ocupada, ¿verdad? No tienen tiempo para hacer todo esto. Así que si puedo ser el tipo que lo hace y lo resume para ti, con gusto lo haría. Y lo disfruto. Como dije en mis conclusiones, hay formas más interesantes y mejores de hacer las cosas. No todo tiene que ser React. Y creo que ver eso y también inspirarse, tal vez te inspiró a escribir tu React de manera ligeramente diferente también. Eso es algo que me gustaría hacer.

Así que, sí. Genial. Bueno, gracias. Esas son todas las preguntas para las que tenemos tiempo. Pero aún pueden hacer preguntas después. CJ estará por aquí si tienen más preguntas. Así que asegúrense de calificar la charla en Slido. Y vamos a tener un breve descanso para que puedan cambiar de pista. Así que solo revisen el horario del sitio web para averiguar qué quieren hacer a continuación. Así que gracias, CJ.

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

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
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.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
Concurrencia en React, Explicada
React Summit 2023React Summit 2023
23 min
Concurrencia en React, Explicada
Top Content
React 18's concurrent rendering, specifically the useTransition hook, optimizes app performance by allowing non-urgent updates to be processed without freezing the UI. However, there are drawbacks such as longer processing time for non-urgent updates and increased CPU usage. The useTransition hook works similarly to throttling or bouncing, making it useful for addressing performance issues caused by multiple small components. Libraries like React Query may require the use of alternative APIs to handle urgent and non-urgent updates effectively.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.

Workshops on related topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Next.js 13: Estrategias de Obtención de Datos
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Estrategias de Obtención de Datos
Top Content
Workshop
Alice De Mauro
Alice De Mauro
- Introducción- Prerrequisitos para la masterclass- Estrategias de obtención: fundamentos- Estrategias de obtención – práctica: API de obtención, caché (estática VS dinámica), revalidar, suspense (obtención de datos en paralelo)- Prueba tu construcción y sírvela en Vercel- Futuro: Componentes de servidor VS Componentes de cliente- Huevo de pascua de la masterclass (no relacionado con el tema, destacando la accesibilidad)- Conclusión
Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
Workshop
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.
Depuración del Rendimiento de React
React Advanced 2023React Advanced 2023
148 min
Depuración del Rendimiento de React
Workshop
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Veía una interacción lenta, probaba una optimización aleatoria, veía que no ayudaba, y seguía probando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Hacía una grabación en Chrome DevTools o React Profiler, la examinaba, intentaba hacer clic en cosas al azar, y luego la cerraba frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos cómo analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, cubriremos el rendimiento de interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Construye una sala de chat con Appwrite y React
JSNation 2022JSNation 2022
41 min
Construye una sala de chat con Appwrite y React
Workshop
Wess Cope
Wess Cope
Las API/Backends son difíciles y necesitamos websockets. Utilizarás VS Code como tu editor, Parcel.js, Chakra-ui, React, React Icons y Appwrite. Al final de este masterclass, tendrás los conocimientos para construir una aplicación en tiempo real utilizando Appwrite y sin necesidad de desarrollar una API. ¡Sigue los pasos y tendrás una increíble aplicación de chat para presumir!
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.