Qwik
Mô hình khả năng tiếp tục của Qwik có nghĩa là JavaScript được thực thi một cách lười biếng — chỉ khi người dùng tương tác. Sử dụng useVisibleTask$ để chạy mã phải thực thi trên trình duyệt khi thành phần trở nên hiển thị.
@wink/elements npm package Cài đặt và tải gói CDN kèm theo các kiểu TypeScript.
Cài đặt
Phần tiêu đề “Cài đặt”npm install @wink/elementsTải với useVisibleTask$
Phần tiêu đề “Tải với useVisibleTask$”useVisibleTask$ là hook vòng đời của Qwik dành cho mã chỉ chạy trên trình duyệt, thực thi ngay lập tức. Đặt nó trong layout gốc của bạn:
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ử dụng trên một trang
Phần tiêu đề “Sử dụng trên một trang”import { component$ } from '@builder.io/qwik';
export default component$(() => { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> <wink-lookup /> </main> );});TypeScript — khai báo JSX intrinsics
Phần tiêu đề “TypeScript — khai báo JSX intrinsics”Qwik sử dụng namespace JSX riêng. Mở rộng nó trong một file khai báo:
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; } }}Biến môi trường
Phần tiêu đề “Biến môi trường”Qwik (dựa trên Vite) cung cấp các biến có tiền tố PUBLIC_ cho trình duyệt:
PUBLIC_WINK_CLIENT_ID=your-client-id