SolidStart: La Forma de los Frameworks del Futuro

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

¡El momento tan esperado ha llegado: SolidStart está fuera de Beta!
¿Pero qué significa esto para nosotros?
¿Qué deberíamos saber sobre este meta-framework no opinado?
Únete a mí para aprender todo lo que necesitas para comenzar a enviar aplicaciones SolidJS de pila completa.

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

Daniel Afonso
Daniel Afonso
21 min
21 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hola, JS Nation. Estoy aquí para contarte sobre algunas cosas interesantes en las que he estado trabajando usando SolidJS. SolidJS introdujo la reactividad de grano fino y las señales hace seis años, mientras que otros frameworks ahora están reconociendo el valor e incorporando conceptos similares. Recientemente, la renderización del lado del servidor y los meta-frameworks han ganado atención, y SolidJS también tiene su propio meta-framework llamado Solid Start. En esta charla, discutiré Solid Start y su papel en la configuración de los frameworks futuros. Un meta-framework es importante porque permite un tiempo más rápido para la producción, mejora la calidad del código y otros beneficios. Solid Start es una forma no opinada de iniciar aplicaciones, permitiendo a los desarrolladores elegir su propio camino. Tomó tres años desarrollarlo, pasando por dos fases beta y grandes reescrituras de API. Solid Start es potenciado por Solid Router, Seroval, Solid y Vinci. La aplicación permite a los usuarios atrapar Pokemons, y el código utiliza Solid Router y File Routing para la carga diferida de componentes. La precarga de datos para los componentes ayuda a optimizar la obtención al eliminar cascadas de red. SOLIDSTART te da la libertad de elegir tu camino y es la forma de los frameworks del futuro.

1. Solid Start: Shaping Future Frameworks

Short description:

Hola, JS Nation. Estoy aquí para contarles sobre algunas cosas interesantes en las que he estado trabajando usando SolidJS. SolidJS introdujo la reactividad de grano fino y las señales hace seis años, mientras que otros frameworks ahora están reconociendo el valor e incorporando conceptos similares. Recientemente, la renderización del lado del servidor y los meta frameworks han ganado atención, y SolidJS también tiene su propio meta framework llamado Solid Start. En esta charla, discutiré Solid Start y su papel en dar forma a los frameworks futuros.

Hola, JS Nation. Espero que todos estén teniendo un evento increíble hasta ahora y disfrutando de esta increíble conferencia. Estoy aquí para contarles un poco sobre algunas cosas interesantes en las que he estado trabajando y que he estado usando y espero que también encuentren interesantes.

Bueno, si estuviéramos haciendo esta charla en persona, les haría tres preguntas. La primera sería, ¿alguna vez han usado SolidJS? La segunda, en realidad la primera sería, ¿han oído hablar de SolidJS? La segunda sería, ¿han usado SolidJS? Y la tercera sería, ¿alguna vez han visto o leído Dune? Porque de manera similar al personaje principal, Poltergeist, en el universo de Dune, Solid mostró a todos el camino hace seis años. Y este fue un camino de reactividad, un camino de reactividad de grano fino, porque esto es donde estábamos hace seis años cuando Solid salió.

Ahora, hay una diferencia entre la reactividad de grano fino, que es donde estaba Solid, y la reactividad de grano grueso. La diferencia es que, cuando tienes un sistema reactivo de grano grueso, el framework necesita ejecutar código para básicamente averiguar dónde ocurren las actualizaciones en la UI. Mientras que cuando tienes un sistema de grano fino, el framework no necesita ejecutar este código. Está impulsado por esta primitiva que se llama señales, y las señales le dicen al framework que algo cambió, y por lo tanto permiten que el framework sea más de grano fino en cierto sentido. Así que esto es donde estábamos hace seis años. Ahora, avancemos en el tiempo. Aquí es donde estamos. Como pueden ver, casi todos vieron el valor de la reactividad de grano fino y las señales, y han pivotado para introducir algún tipo de nivel, algún tipo de señales en su código y en sus frameworks.

Ahora, esto estaba sucediendo algo nuevo apareció hace un par de tres, cuatro años, y la gente comenzó a hablar sobre esta nueva cosa, que no es una cosa nueva, que ha estado alrededor por un tiempo, pero no se había hecho en el mundo de JavaScript por un tiempo, o no había estado activamente en el mundo de JavaScript por un tiempo, que es la renderización del lado del servidor. Y todos estaban pensando, está bien, sí, la renderización del lado del servidor, eso es bastante interesante, nos ahorra un montón de tiempo, podemos pivotar un montón de cosas del cliente a los servidores nuevamente. Lo habíamos hecho en el pasado, ¿cómo podemos empezar a hacerlo de nuevo? Bueno, personalmente, no me gustaba configurar Webpack por mí mismo. Una de las formas más fáciles en que podíamos optar por un modo de renderización diferente era usando un meta framework. Y cada framework tenía su propia versión de un meta framework. Así que para aquellos de ustedes que no están familiarizados, meta framework, se llama meta framework porque es un framework construido a partir de un framework. Y bueno, esos frameworks tenían sus propios meta frameworks, Vue tenía Nuxt, Angular tenía Analog, React tiene Next.js o Remix. Y estos meta frameworks les permitieron hacer esta cosa que necesitábamos, que era la renderización del lado del servidor, tenían estos múltiples modos de renderización que podías usar.

Ahora, mientras esto estaba sucediendo, mientras esta discusión surgía, la gente comenzó a preguntar la pregunta, está bien, ¿qué pasa con Solid? ¿Dónde está el meta framework de Solid? Bueno, miren, en 2021, Vite 2.0 salió. En esa misma semana, Ryan Carnearo, el creador de Solid.js, comenzó a trabajar en el nuevo meta framework para Solid, Solid Start. Y ese es el título de esta charla, Solid Start, la Forma de los Frameworks por Venir. Antes de continuar, permítanme presentarme rápidamente. Mi nombre es Daniel Alfonso, soy un defensor de desarrolladores. Soy parte del equipo de DX de Solid.js. Soy instructor en Agileio y pueden encontrarme prácticamente en cualquier red social, en cualquier lugar en internet con el handle DanielJCAlfonso. Algunas otras cosas sobre mí, bueno, publiqué un libro llamado State Management with React Query el año pasado.

2. Explorando Meta-Frameworks y Solid Start

Short description:

Lancé un curso en AGet llamado An Introduction to the React Testing Library en diciembre. También lancé un nuevo curso llamado Get Started with Solid Start. Un meta-framework es importante porque permite un tiempo más rápido para la producción, mejora la calidad del código y otros beneficios. La gente puede tener preocupaciones sobre los meta-frameworks con opiniones, pero el nivel de opinión puede variar. El router es un componente crucial de un meta-framework. Solid Start fue lanzado en mayo y actualmente está en la versión 1.06.

Ha estado alrededor por un año ahora mismo, bueno, el tiempo pasa muy rápido. Lancé un curso en AGet llamado An Introduction to the React Testing Library en diciembre pasado. Y de hecho, no está en esta diapositiva, pero de hecho acabo de lanzar un nuevo curso en Aget llamado Get Started with Solid Start. Así que después de esta charla, si quieren saber más sobre Solid Start, pueden escanear este código QR aquí y podrán ver todos estos cursos.

Una cosa interesante sobre este curso, es gratis para todos, así que si quieren revisarlo, por favor háganlo y denme su opinión. Algo más sobre mí, he estado publicando un boletín sobre lo que está sucediendo en el mundo de Solid cada mes. Así que básicamente, solo compilo todo lo que ha estado sucediendo, actualizaciones interesantes del equipo central, actualizaciones interesantes del ecosistema, cosas interesantes encontradas en línea. Así que por favor revisen estos boletines, también en este código QR, si quieren estar actualizados con el mundo de Solid.

Así que volvamos a la discusión que estamos aquí para escuchar. Y la pregunta es, ¿por qué necesitamos un meta-framework? ¿Por qué es esto importante? Porque un meta-framework, no se trata solo de múltiples modos de renderización. No se trata de mejorar la experiencia del desarrollador. No se trata solo de pautas adecuadas, adaptadores de implementación y ser opinado. Al final del día, se trata de tener un tiempo más rápido para la producción. Por eso desarrollamos. Por eso nos pagan para hacer nuestro trabajo. Se entrega a nuestros usuarios. Y obviamente, todos quieren que sea más rápido. Así que un meta-framework básicamente abarca todas estas cosas, para que al final del día, podamos tener un tiempo más rápido para la producción, mientras tenemos más calidad en nuestro código y un montón de otras cosas.

Ahora, hay una palabra clave aquí que, bueno, algunas personas en el mundo de JavaScript pueden ponerse un poco incómodas, y esta palabra es opinado. Porque lo que sucede es que cuando la gente escucha la palabra opinado, comienzan a pensar, oh, si soy opinado, no hay libertad, porque ahora estoy atrapado. Ahora no puedo cambiar algo, porque este meta-framework me está bloqueando en algo. Algo que he aprendido sobre el mundo de JavaScript en los últimos años es que no nos gusta ser opinados. Nos gusta ser libres. Nos gusta sentir que podemos tener la opción de traer una nueva biblioteca si queremos, para hacer algo con lo que estamos luchando. Y cuando hablamos de un meta-framework, hay cosas que van desde lo más opinado hasta lo menos opinado. Así que estas son las cuatro cosas que típicamente se necesitan para cada meta-framework. Tenemos el router, tenemos el framework, tenemos el bundler, y tenemos el tiempo de ejecución del servidor. Y como pueden ver, el router está en la parte superior de lo más opinado, porque, bueno, el router puede ser visto también como uno de los corazones de su meta-framework, y es el donde comienzan la mayoría de las opiniones y las invenciones.

Ahora, volvamos a la pregunta con la que comenzamos esta charla, que es, ¿qué pasa con Solid? Hola? Hola? Hola? Este mayo, Solid Start fue lanzado. Y ahora estamos actualmente en la 1.06, si no me equivoco.

3. Solid Start: No opinado y personalizable

Short description:

Solid Start es una forma no opinada de iniciar aplicaciones, permitiendo a los desarrolladores elegir su propio camino. Tomó tres años desarrollarlo, pasando por dos fases beta y grandes reescrituras de API. El objetivo es proporcionar la mejor experiencia de desarrollador y control a los desarrolladores. Solid Start no requiere el uso de un solid router y permite a los desarrolladores traer su propio router, moldeando su propio camino y viaje.

Así que ahora podrías estar pensando, espera, ¿no dijiste que comenzó a desarrollarse en 2021? Tomó tres años para que Solid Start saliera, porque en el equipo de Solid queríamos que Solid Start fuera... ¿Hola? ¿Hola? ¿Hola? Una forma de frameworks, cuidado. ¿Hola? Queríamos que Solid Start fuera algo no opinado que pudiera darnos la mejor experiencia de desarrollador y aún así dar el control a ti, el desarrollador. Pasamos por dos fases beta, algunas grandes reescrituras de API. Pero al final del día, terminamos con algo que creemos que puede ser esto que afirmamos ser la forma de los frameworks por venir. Pero veamos un poco más sobre Solid Start. Porque hay esta diapositiva aquí. Podría ser una diapositiva inspiradora de una charla inspiradora. Esto es literalmente cómo pienso sobre Solid Start. Porque Solid Start está destinado a ser una forma no opinada de iniciar tus aplicaciones, y está destinado a ser eso, un iniciador. Está destinado a ser optativo en cosas. Por ejemplo, una de las cosas realmente emocionantes sobre Solid Start, ni siquiera necesitas un solid router. Y recuerda, el router es lo más opinado en el meta-framework. Hablé sobre eso. Pero para Solid Start, si no quieres usar el solid router, no tienes que hacerlo. Puedes traer tu propio router. Puedes traer time stack router, por ejemplo, si es compatible, cuando sea compatible con Solid Start. Así que se trata de moldear tu camino. Se trata de moldear tu viaje. Se trata de no tener cosas que no necesitas en tus aplicaciones. Porque eso sucede con más frecuencia. Solid Start se trata de elegir tu propio camino.

4. Solid Start: Heart, Components, and Features

Short description:

Solid Start está impulsado por Solid Router, Seroval, Solid y Vinci. Solid Router es opcional, y Seroval es un serializador personalizado creado específicamente para Solid Start. Vinci es un envoltorio alrededor de Vite y Nitro, proporcionando configuraciones adicionales. Nitro, como el tiempo de ejecución del servidor, fomenta el apoyo y la colaboración comunitaria.

Ahora, veamos un poco cuál es el corazón y qué toma Solid Start. Así que en la parte superior tenemos Solid Router. Recuerda, te dije que Solid Router es opcional. No lo necesitas. Puedes descomponerlo y traer algo más. Luego tenemos Seroval, que es nuestro increíble serializador. Tuvimos que integrarlo nosotros mismos y crear un nuevo serializador para Solid Start específicamente porque hay muchas cosas interesantes que Solid Start necesita y Seroval es realmente importante para eso. No hablaré de esto porque no tendremos tiempo, pero si, por ejemplo, has asistido o has visto React Summit este año en Ámsterdam, Attila Fassina, uno de los miembros del equipo de Solid DX también, hizo una muy buena charla sobre Solid Start también, y profundizó un poco más en Seroval, así que definitivamente recomiendo que veas esa charla.

Luego también tenemos Solid. Obviamente, necesitamos el framework. Así que Solid es el corazón de Solid Start. Y luego tenemos Vinci. Así que Vinci, es un envoltorio alrededor de Vite y Nitro porque necesitábamos algunas configuraciones adicionales y tuvimos que crear Vinci. Así que uno de nuestros miembros del equipo principal creó Vinci para manejar las necesidades de Solid Start y es lo suficientemente poderoso como para soportar Solid Start y también soportar cosas como 10Stack Start, que se lanzará muy pronto. Estoy realmente emocionado por eso. Pero, como dije, es un envoltorio alrededor de Vite y Nitro, Vite siendo el entorno de desarrollo y Nitro siendo nuestro tiempo de ejecución del servidor. La razón por la que elegimos Nitro es porque es, una vez más, lo suficientemente poderoso para impulsar analog e impulsar Next. Y construye esta conexión entre comunidades. Creo que esta es una de las cosas realmente geniales de tener Nitro como nuestro tiempo de ejecución del servidor. Porque nos estamos ayudando mutuamente a crecer. Estamos creciendo juntos. Nos estamos apoyando mutuamente. Y cuando alguien de analog arregla algo en Nitro, afectará a Next. Afectará a Solid Start. Y trae este apoyo comunitario que no he visto hasta ahora en muchas cosas. Así que es realmente emocionante.

Ahora, basta de hablar sobre lo que hace funcionar a Solid Start. Podrías estar pensando, está bien, ¿qué hay de las características? Bueno, hay todas estas características. Hay muchas de ellas.

5. Solid Start: Application Demo and Code

Short description:

La aplicación permite a los usuarios atrapar Pokemons, y el código utiliza Solid Router y File Routing para la carga diferida de componentes. Las rutas de índice y Catch Pokemon se crean dinámicamente. Además, el código utiliza la primitiva Create a Sink de Solid.

Hay muchos de ellos. No tendré tiempo para repasarlos todos, pero quiero mostrarte una pequeña demostración donde los revisaremos. Así que tengo esta aplicación aquí, donde básicamente tienes tu lista de Pokemon, y puedes atrapar tu Pokemon. Así que si voy aquí y digo, está bien, quiero atrapar a Charizard. Y el número de imagen es seis. Controlo Master Ball. Y ahora tengo a Charizard en esa lista. Eso es básicamente lo que hace esta aplicación.

Veamos cómo se traduce esto en código. Así que abramos Visual Studio Code aquí. Así que aquí tenemos una demo de Solid Start. Y comenzaría típicamente en nuestra configuración de la aplicación, donde tenemos nuestra configuración definida y estamos diciendo, está bien, esta no es la aplicación renderizada del lado del servidor. Así que tenemos servidor como falso. Esto significa que estamos haciendo una aplicación de una sola página, como la tradicional que tenemos. Y si revisamos nuestro app.tsx, así que el punto de inicio de nuestra aplicación, tenemos nuestro enrutador. Así que en este caso, estamos usando Solid Router. Recuerda, no necesitas Solid Router, pero eso es lo que estamos usando aquí.

Estamos usando File Routing. Así que File Routing, es muy útil para ayudar a hacer cosas como la carga diferida automática para algunos componentes. Así que esto realmente ayuda cuando estás haciendo tree shaking. También es bastante útil cuando tienes una aplicación grande, y no necesitas básicamente importar todas las rutas aquí, cargarlas de forma diferida tú mismo, agregarlas aquí. Este componente simplemente irá. Así que File Routing, File System Routing básicamente le dice a tu aplicación, oye, en lugar de hacerme cargar todos los componentes, vas a mirar en nuestra fuente. Vas a mirar en una carpeta llamada Routes, y vas a convertir las rutas allí en básicamente rutas para mi aplicación. Y cada ruta se carga luego dentro de este límite de suspense que tenemos aquí. Así que cuando voy a la ruta de índice, que es básicamente esta ruta que tenemos aquí, lo que va a pasar es que Solid Start, va a convertir este componente de índice en sí mismo en la ruta de índice. Si voy a la ruta Catch Pokemon, se va a convertir en la ruta slash Catch Pokemon. Ahora, eso no es lo que quiero mostrarte, solo mostrando un poco de algunas de las cosas que tenemos aquí.

Veamos qué estamos haciendo en esta aplicación. Así que primero en nuestra página de índice, estamos haciendo algo, está bien, tenemos Pokemons y tenemos Create a Sink, que es uno de los primitivos de Solid que convierte una promesa en una señal.

6. Solid Start: Obtención de Pokemons y Precarga de Datos

Short description:

Usamos suspense para obtener Pokemons y mostrar Pokedex de carga mientras se obtienen. La precarga de datos para los componentes ayuda a optimizar la obtención al eliminar cascadas de red. El mecanismo de caché deduplica recursos, mejorando el rendimiento. La directiva useServer ejecuta código en el servidor para obtener y almacenar en caché datos. Hemos cubierto la precarga de datos, el enrutamiento del sistema de archivos, el almacenamiento en caché y las funciones del servidor.

Y básicamente estamos diciendo, está bien, quiero obtener Pokemons. Y mientras estamos obteniendo Pokemons, porque eso es para lo que es útil suspense, tenemos un fallback para mostrar Pokedex de carga. Una vez que tenemos nuestros Pokemons, mostramos nuestra lista de Pokemon. También tenemos algo aquí, que es básicamente, un poco de información para que el enrutador sepa, está bien, cuando entres en esta ruta, puedes precargar algunos datos. ¿Y por qué es esto útil? Bueno, imaginemos típicamente el proceso típico de obtención de datos y carga de componentes. Así que nuestra aplicación se carga y nuestro índice comienza a renderizarse. Si ese índice tiene un componente, ese componente luego se obtiene y se renderiza, y si ese componente luego necesita algunos datos, esos datos serán obtenidos. Y como puedes ver, estamos teniendo una cascada.

Ahora, cuando tenemos precarga, básicamente le estamos diciendo al enrutador, oye, este componente aquí va a necesitar ciertos datos. Y lo que va a pasar es que en lugar de que el componente vaya uno, dos, tres, y luego en la parte tres obtenga los datos, el enrutador sabe que, está bien, si este componente necesita estos datos, vamos a obtenerlos en paralelo. Así que en lugar de ir uno, dos, tres, simplemente vamos uno, dos. Y esto comienza, básicamente empezamos a deshacernos de las cascadas de red. Y es una optimización para obtener datos. Ahora, lo que sucedería tradicionalmente aquí, si no hicieras nada más, es que obtendrías datos aquí, y los obtendrías aquí. Y ahora estás pensando, está bien, pero ahora tenemos dos solicitudes. Bueno, por eso introdujimos esta nueva cosa que tenemos dentro de esta función getPokemons, que se llama caché. Así que esto es un caché, pero podrías pensar en esto como un mecanismo de deduplicación de recursos.

Así que evitando el mecanismo de duplicación de recursos, lo que está sucediendo aquí es que cada vez que se llama a esta función getPokemons, vamos a obtener los datos y luego almacenarlos en caché debajo de esta clave de caché llamada Pokemons. Esto significa que si en ese viaje de ida y vuelta que está sucediendo en el navegador, si estos datos se obtienen, una vez se almacenarán en caché durante ese viaje de ida y vuelta. Y la próxima vez que suceda esa solicitud, simplemente la servimos, esos datos, en lugar de volver a obtenerlos. También hay algo realmente interesante que tenemos aquí. Así que tenemos esta directiva llamada useServer, que es algo para hacerle saber al empaquetador que queremos ejecutar esta función en el servidor en lugar de ejecutarla en el cliente. Así que significa que cada vez que se llama a esta función getPokemons, este bloque de código aquí se va a ejecutar. Va a suceder una llamada RPC del cliente al servidor. El servidor obtiene los datos, los devuelve al cliente y luego el cliente tiene acceso a ellos y los almacena en caché. Eso es básicamente lo que está sucediendo aquí en esta parte. Y como puedes ver ahora mismo, acabamos de ver algo bastante genial en solo dos minutos. Hemos visto la precarga de datos, hemos visto el enrutamiento del sistema de archivos, hemos visto el almacenamiento en caché, hemos visto funciones del servidor. Vamos a revisar la parte de catchPokemon. Así que el componente catchPokemon es básicamente solo un formulario.

7. Solid Start: Form Action and Navigation

Short description:

Los formularios han sido los pilares de las mutaciones en la web. La acción en el formulario llama a la acción del servidor para agregar los datos del formulario a la base de datos. Una vez que los datos se agregan, el navegador navega de regreso a la ruta anterior. Tradicionalmente, después de enviar el formulario, necesitaríamos navegar y volver a obtener los datos, lo que resulta en tres solicitudes.

Y es un formulario que tiene una acción de formulario. Recuerda, los formularios han sido los pilares de las mutaciones en la web desde siempre. Y una acción es básicamente solo algo que el formulario llamará cada vez que se envíe.

Vamos a revisar esta acción. Así que sabemos, en primer lugar, que esto es una acción porque la estamos etiquetando con una acción. Y lo que estamos haciendo aquí es, una vez más, llamar a useServer. Así que ahora tenemos una acción del servidor. Y básicamente estamos obteniendo los datos del formulario para atrapar un Pokemon, lo que significa agregar esos datos a nuestra base de datos. Y luego le decimos al navegador, está bien, una vez que hayas agregado estos datos, regresa a la ruta anterior.

Así que no queremos quedarnos en el formulario. Y esto va a llevar a una característica muy interesante. Porque ahora quiero que te concentres en antes de que tomemos de nuevo. ¿Qué sucedería tradicionalmente? Así que tenemos nuestro formulario. Entonces, cuando enviamos el formulario, normalmente hacemos nuestra solicitud POST, ¿verdad? Así que hacemos la solicitud POST. Y luego tendríamos que navegar a nuestra ruta para regresar. Así que ahora tendríamos que navegar. Así que iríamos al índice. Una vez que estamos en el índice, ahora necesitaríamos nuestros datos. Así que tendríamos que volver a obtener los datos. Ese es típicamente el proceso. Así que POST, navegación y obtención de datos. Así que tres solicitudes.

Así que quiero que vayas a revisar la aplicación conmigo. Porque ahora voy a abrir la pestaña de Red por un momento. Y quiero mostrarte algo interesante. Déjame solo verificar si la aplicación sigue funcionando. Está bien. Debería seguir funcionando. Lo está. Hola.

8. Explorando Mutaciones de Vuelo Único y SOLIDSTART

Short description:

Solo hay una solicitud en las mutaciones de vuelo único. SOLIDSTART te da la libertad de elegir tu camino y es la forma de los frameworks por venir.

Tuve que cerrar la aplicación y comenzarla de nuevo. Pero vamos a comprobarlo. Así que vamos a atrapar un Pokemon, ¿de acuerdo? Vamos a limpiar todo. Vamos a atrapar un Pokemon. Vamos a intentar con Wukario. Así que Wukario. Y creo que el número de imagen debería ser 448. Espero no estar equivocado, pero no importa. 448. Lo lanzamos. Y atrapamos a Wukario.

Ahora hay algo interesante sucediendo aquí. Porque solo hay una solicitud. ¿Por qué? ¿No deberían ser tres? Bueno, esto es lo que llamamos mutaciones de vuelo único. Y es una de las características que, hasta ahora, solo he visto comenzar a. Lo que está sucediendo aquí es que, cuando tienes una aplicación que conoce tus dependencias del router y sabe lo que necesita suceder, lo que sucede es que, cuando hacemos esa solicitud POST, porque el router sabe dónde está, a dónde necesita ir y dónde sucede, mientras la solicitud POST sucede, ya devolvemos la siguiente página, y comenzamos a obtener los datos en paralelo y los transmitimos de vuelta. Todo en un solo vuelo. Y esto evita tener las tres solicitudes que tradicionalmente tendríamos. Y es realmente, realmente emocionante.

Desafortunadamente, no tengo más tiempo para mostrarte más cosas. Pero esto es, con suerte, solo algo para darte un rápido vistazo de cómo funciona SOLIDSTART. Así que déjame terminar mi presentación. Como puedes ver, SOLIDSTART, definitivamente no es un framework, pero te da libertad. No es automatizado. Te da esta libertad de hacer las cosas que quieres con lo que quieres. Y como dije, está destinado a ser un iniciador, destinado a ser una forma para que comiences tu viaje y hagas tus cosas de la manera que lo necesites, como lo necesites. Por eso decimos que SOLIDSTART es la forma de los frameworks por venir. Es tener algo que no es dogmático. Te da la libertad de elegir tu camino. Y estamos realmente emocionados de ver cómo esto va a afectar otras cosas. Ya estamos viendo otros meta-frameworks siendo construidos sobre SOLIDSTART en el ecosistema SOLID lo cual es realmente, realmente emocionante. Así que dicho esto, soy Daniela Fons. Muchas gracias por ver mi charla. Y si quieres conectarte conmigo en línea, Daniela J. Ciafonso en todas partes. Nos vemos. Que tengas un buen evento. ¡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

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.