Qwik
Modelul de rezumabilitate al Qwik înseamnă că JavaScript se execută leneș — doar când utilizatorul interacționează. Folosește useVisibleTask$ pentru a rula cod care trebuie să se execute în browser când componenta devine vizibilă.
@wink/elements npm package Instalează și încarcă pachetul CDN cu tipuri TypeScript.
Instalare
Section titled “Instalare”npm install @wink/elementsÎncarcă cu useVisibleTask$
Section titled “Încarcă cu useVisibleTask$”useVisibleTask$ este hook-ul de ciclu de viață al Qwik pentru cod care se execută doar în browser, imediat. Plasează-l în layout-ul rădăcină:
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> );});Folosește pe o pagină
Section titled “Folosește pe o pagină”import { component$ } from '@builder.io/qwik';
export default component$(() => { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> <wink-lookup /> </main> );});TypeScript — declară JSX intrinseci
Section titled “TypeScript — declară JSX intrinseci”Qwik folosește propriul namespace JSX. Extinde-l într-un fișier de declarații:
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; } }}Variabile de mediu
Section titled “Variabile de mediu”Qwik (bazat pe Vite) expune variabile prefixate cu PUBLIC_ către browser:
PUBLIC_WINK_CLIENT_ID=your-client-id