Qwik
El modelo de resumibilidad de Qwik significa que JavaScript se ejecuta de forma perezosa — solo cuando el usuario interactúa. Usa useVisibleTask$ para ejecutar código que debe correr en el navegador cuando el componente se vuelve visible.
@wink/elements npm package Instalá y cargá el bundle CDN con tipos TypeScript.
Instalación
Sección titulada «Instalación»npm install @wink/elementsCargar con useVisibleTask$
Sección titulada «Cargar con useVisibleTask$»useVisibleTask$ es el hook de ciclo de vida de Qwik para código que se ejecuta solo en el navegador y de forma inmediata. Colocalo en tu layout raíz:
import { component$, useVisibleTask$ } from '@builder.io/qwik';import { load } from '@wink/elements';
export default component$(() => { useVisibleTask$(() => { load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); });
return ( <main> <Slot /> </main> );});Uso en una página
Sección titulada «Uso en una página»import { component$ } from '@builder.io/qwik';
export default component$(() => { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> <wink-lookup /> </main> );});TypeScript — declarar intrínsecos JSX
Sección titulada «TypeScript — declarar intrínsecos JSX»Qwik usa su propio namespace JSX. Extendelo en un archivo de declaración:
import type { WinkContentLoaderAttributes, WinkLookupAttributes, WinkSearchButtonAttributes, WinkAccountButtonAttributes, WinkItineraryButtonAttributes, WinkShoppingCartButtonAttributes, WinkAppLoaderAttributes,} from '@wink/elements';
declare module '@builder.io/qwik' { namespace JSX { interface IntrinsicElements { 'wink-content-loader': WinkContentLoaderAttributes; 'wink-lookup': WinkLookupAttributes; 'wink-search-button': WinkSearchButtonAttributes; 'wink-account-button': WinkAccountButtonAttributes; 'wink-itinerary-button': WinkItineraryButtonAttributes; 'wink-shopping-cart-button': WinkShoppingCartButtonAttributes; 'wink-app-loader': WinkAppLoaderAttributes; } }}Variables de entorno
Sección titulada «Variables de entorno»Qwik (basado en Vite) expone variables con prefijo PUBLIC_ al navegador:
PUBLIC_WINK_CLIENT_ID=tu-client-id