SolidStart: La Forma de los Frameworks del Futuro

Rate this content
Bookmark

¡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.

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 WorkshopFree
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 🤐)
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
Featured 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.
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
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
WorkshopFree
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
WorkshopFree
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.