Explorando Qwik: Un Nuevo Marco para el Desarrollo Web de Alta Velocidad

Jaime Hernández
4 min readMay 25, 2023

--

Introducción a Qwik

https://qwik.builder.io/

Qwik es un innovador framework para el desarrollo de aplicaciones web que se centra en brindar la mayor velocidad posible. A diferencia de otros marcos de trabajo, Qwik optimiza el rendimiento de la aplicación directamente en la fase de producción en lugar de en el tiempo de construcción. Su filosofía central se resume en su nombre, que sugiere “rápido” en inglés.

Características Principales de Qwik

Aquí hay algunas características destacadas de Qwik que lo hacen realmente único:

  • Componentización en su Máxima Expresión: Qwik se basa en un enfoque fuertemente componente, lo que facilita el mantenimiento y la escalabilidad de las aplicaciones. Cada componente es autónomo, encapsulando su propio estado, eventos y renderizado.
  • Optimización en Tiempo de Ejecución: En lugar de centrarse en optimizar el tiempo de compilación, Qwik optimiza en tiempo de ejecución, utilizando técnicas como la carga diferida y el prerrenderizado para mejorar la velocidad y la eficiencia de las aplicaciones.
  • Estático por Diseño: Qwik fomenta la creación de aplicaciones estáticas siempre que sea posible. Esto permite el aprovechamiento de la CDN para un rendimiento rápido en cualquier parte del mundo.
  • URL Orientado: En Qwik, todo es direccionable a través de URLs, lo que incluye componentes y su estado. Esto es crucial para permitir la carga diferida y la ejecución paralela de componentes.
  • Sensible a la Eficiencia del Desarrollador: El marco de trabajo proporciona una API intuitiva y minimalista, que facilita el aprendizaje y aumenta la productividad del desarrollador.

Cómo Empezar con Qwik

Si está listo para probar Qwik, estos son los pasos iniciales:

  1. Instalar Qwik: Puede instalar Qwik utilizando npm con el siguiente comando: npm install @qwikdev/qwik
  2. Crear un Proyecto: Crear un nuevo proyecto de Qwik es tan simple como crear una nueva carpeta y configurarla como un proyecto de npm.
  3. Iniciar la Construcción: Ahora puede empezar a construir sus componentes de Qwik y probar el rendimiento de su aplicación.

Manejador de Estado en Qwik

El manejo del estado en Qwik es algo único debido a su enfoque basado en componentes y URL. Cada componente en Qwik encapsula su propio estado, lo que significa que cada componente es responsable de manejar su propio estado, eliminando la necesidad de una tienda de estado global.

El estado de un componente en Qwik se almacena en un atributo de un elemento HTML, y se actualiza a través de eventos que se disparan en ese elemento. Esto significa que el estado de un componente se almacena directamente en el DOM, lo que simplifica la gestión del estado y hace que el renderizado de componentes sea más eficiente.

Signal en Qwik

Las Signals son una de las características más interesantes de Qwik. Una Signal es básicamente una URL que representa un evento. Cuando se produce un evento en un componente, como un clic de un botón, se genera una Signal que se puede utilizar para disparar una función correspondiente para manejar ese evento.

Lo interesante de las Signals es que están estrechamente relacionadas con el estado del componente. Cuando se genera una Signal, también captura el estado actual del componente. Esto significa que la función de manejo del evento tiene acceso completo al estado del componente en el momento en que se produjo el evento.

Una Signal también puede ser prerrenderizada, lo que significa que la función de manejo del evento se puede ejecutar en el servidor incluso antes de que se produzca el evento. Esto puede ser muy útil para mejorar el rendimiento, especialmente en casos donde es probable que ocurra un evento específico.

En conclusión, Qwik proporciona una forma innovadora y eficiente de manejar el estado y los eventos en las aplicaciones web. A través de su enfoque basado en componentes y URL y su característica de Signal, Qwik facilita la construcción de aplicaciones web rápidas y altamente interactivas.

En Qwik, las Signals son una forma de manejar eventos en el contexto de los componentes. Básicamente, puedes pensar en una Signal como una URL que desencadena una acción. Por ejemplo, si tienes un botón en tu componente, puedes asociar un evento de clic con una Signal.

Veamos un ejemplo de cómo puedes crear Signals en Qwiks

<!-- Tu componente de Qwik -->
<todo-item q:val="item1" q:keyup:enter=".markAsDone" q:click:.delete=".delete"></todo-item>

En el código anterior, tienes un componente todo-item que tiene dos eventos asociados. Los atributos q:keyup:enter y q:click se usan para crear Signals que representan estos eventos.

El atributo q:keyup:enter=".markAsDone" significa que cuando se presiona la tecla Enter (keyup:enter), Qwik desencadena la función markAsDone.

De manera similar, el atributo q:click:.delete=".delete" significa que cuando se hace clic en el elemento con la clase delete, se desencadena la función delete.

El código de estas funciones puede lucir así:

// Función para marcar el item como hecho
export async function markAsDone(element: Element) {
const todoItem = await element.getValue<TodoItem>();
todoItem.done = true;
await element.update(todoItem);
}

// Función para eliminar el item
export async function delete(element: Element) {
await element.remove();
}

--

--

No responses yet