Qwik
El model de resumibilitat de Qwik significa que JavaScript s’executa de manera mandrosa — només quan l’usuari interactua. Utilitza useVisibleTask$ per executar codi que ha d’executar-se al navegador quan el component es fa visible.
@wink/elements npm package Instal·la i carrega el paquet CDN amb tipus TypeScript.
Instal·lar
Section titled “Instal·lar”npm install @wink/elementsCarregar amb useVisibleTask$
Section titled “Carregar amb useVisibleTask$”useVisibleTask$ és el hook del cicle de vida de Qwik per a codi que s’executa només al navegador i de manera immediata. Col·loca’l al teu layout arrel:
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> );});Ús en una pàgina
Section titled “Ús 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 — declara intrínsecs JSX
Section titled “TypeScript — declara intrínsecs JSX”Qwik utilitza el seu propi namespace JSX. Amplia’l en un fitxer de declaració:
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 d’entorn
Section titled “Variables d’entorn”Qwik (basat en Vite) exposa variables prefixades amb PUBLIC_ al navegador:
PUBLIC_WINK_CLIENT_ID=your-client-id