Qwik
Il modello di resumabilità di Qwik significa che JavaScript viene eseguito in modo lazy — solo quando l’utente interagisce. Usa useVisibleTask$ per eseguire codice che deve girare nel browser quando il componente diventa visibile.
@wink/elements npm package Installa e carica il bundle CDN con i tipi TypeScript.
Installazione
Sezione intitolata “Installazione”npm install @wink/elementsCaricamento con useVisibleTask$
Sezione intitolata “Caricamento con useVisibleTask$”useVisibleTask$ è il lifecycle hook di Qwik per codice eseguito solo nel browser, in modo eager. Inseriscilo nel layout root:
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 in una pagina
Sezione intitolata “Uso in una pagina”import { component$ } from '@builder.io/qwik';
export default component$(() => { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> <wink-lookup /> </main> );});TypeScript — dichiarare gli intrinseci JSX
Sezione intitolata “TypeScript — dichiarare gli intrinseci JSX”Qwik usa un proprio namespace JSX. Estendilo in un file di dichiarazione:
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; } }}Variabili d’ambiente
Sezione intitolata “Variabili d’ambiente”Qwik (basato su Vite) espone al browser le variabili con prefisso PUBLIC_:
PUBLIC_WINK_CLIENT_ID=your-client-id