He estado usando React durante los últimos 12 años, y comencé a usarlo para el renderizado del lado del servidor. Pasé por React Create class, componentes de clase ES6, componentes de función con componentes de orden superior, Redux, y luego Hooks. Pero luego, este gran cambio ocurrió recientemente, llamado RSCs. Y RSCs de alguna manera voltearon el modelo de React, donde ahora todo es orientado al servidor. Los datos son orientados al servidor. Comenzamos a pensar, ¿por qué enviar componentes al cliente si la salida siempre va a ser estática? Podemos tener un paquete de cliente más pequeño si gran parte de nuestra UI puede ser representada con datos o marcado en esta situación. Todavía podemos tener componentes de cliente para la interactividad.
Así que comencé a pensar, ¿pueden los componentes del servidor ser interactivos por sí mismos? Hola, soy Naman, y no soy fan de HTMX. Pero hay algunas cosas que todavía me parecen interesantes al respecto. Así que este es un demo muy simple de HTMX, y lo que me gusta de él es que la lógica de tu aplicación está justo ahí en el HTML. No hay JavaScript extra para cargar, no hay paquetes adicionales. Todo se reduce a algo muy simple, muy eficiente, en términos de los datos que tienen que cargarse en el navegador. Pero también, HTMX tiene lógica imperativa por todas partes. Estás actualizando cosas por IDs y inner HTML y outer HTML. No hay un sistema declarativo para hacer un seguimiento de todo y no hay componentes, no hay flujo de datos consistente.
Eventualmente, comienza a sentirse como jQuery con pasos adicionales. Pero luego también, por otro lado, JSX puede usarse sin React. Y hay un marco de servidor llamado Hano. Es un competidor de Express, que tiene soporte de primera clase para JSX, pero solo para renderizar HTML regular. Y así comencé a pensar, ¿podría hacer un modelo de componente declarativo que genere algo como HTMX? Hola, soy Naman, y no soy un gran fan de Web Components. Pero he estado investigando las APIs, buscando algo de valor en todo eso que hemos construido y puesto en los navegadores. Así que comencé a mirar qué son los Web Components, qué compone los Web Components. Así que la primera cosa de la que todos hablan, porque es la parte más controvertida, es Shadow DOM. Shadow DOM te da aislamiento de estilos. Ese es su gran valor. Cualquier CSS fuera del Shadow DOM no se aplica al mockup dentro del Shadow DOM, y cualquier CSS dentro del Shadow DOM no afecta nada fuera de él. Pero ahora tenemos Atomic CSS. No tenemos conflictos. No necesitamos este alcance de CSS en la mayoría de los casos.
Comments