Componentes Qwik

Enlace al repositorio

Lo primero que vamos a hacer es eliminar las rutas y los archivos de Qwik que venían con la plantilla. Vamos a dejar casi vacío el index.tsx que está dentro de routes y el layout.tsx que tiene al lado.


   // Path: src/routes/index.tsx
   import { component$ } from "@builder.io/qwik";
   import type { DocumentHead } from "@builder.io/qwik-city";
   
   export default component$(() => {
     return (
       <div>
         <h1>Components</h1>
       </div>
     );
   });
   
   export const head: DocumentHead = {
     title: "Welcome to Qwik",
     meta: [
       {
         name: "description",
         content: "Qwik site description",
       },
     ],
   };
          

Esta última parte, la del DocumentHead, también la podemos eliminar, ya que ahora mismo el foco no está en aprender a hacer SEO con Qwik, pero para que lo sepas, es aquí donde puedes encargarte de las metatags.


   // Path: src/routes/layout.tsx
   import { component$, Slot } from "@builder.io/qwik";

   export default component$(() => {
     return <Slot />;
   });
   
          

A continuación, dentro de la carpeta components en src vamos a crear una nueva carpeta llamada header. Crea dentro de esa carpeta un archivo llamado index.tsx. Ahí dentro podemos crear nuestro primer componente. Si estás usando VSCode y tienes la extensión que recomendé al principio, entonces haciendo q- debería salirte la sugerencia del snippet de código.

Cómo activar el snippet de código de Qwik

Tienes dos formas de declarar el componente:


    // Path: src/components/headline/index.tsx
    import { component$ } from "@builder.io/qwik";

    // Forma 1: Con export default
    export default component$(() => {
      return <div>Hello Qwik!</div>;
    });

    // Forma 2: Con export const y el nombre del componente
    export const Headline = component$(() => {
      return <div>Hello Qwik!</div>;
    });
      
          

Elijas la forma que elijas, ya podrás importar el archivo en nuestro index.tsx dentro de routes. Para hacer un import de forma automática, usa el símbolo < y empieza a escribir el nombre del componente, en este caso Headline, y te deberá salir la sugerencia de import.

Cómo activar sugerencia de import con VSCode

IMPORTANTE: es cierto que ver tanto mismo archivo llamado index.tsx puede llegar a causar confusión. Cuesta un poco acostumbrarse al principio, pero el orden establecido a través del sistema de rutas con las carpetas compensa.

En el vídeo de la explicación con los componentes hablamos además de qué es la component rendering function, de las limitaciones que tiene el return al solo permitir un JSX node, y de cómo podemos solventar eso a través de fragments.

En la siguiente lección vamos a crear componentes dinámicos, y vamos a hablar entonces de un tema muy importante: props.