Qwik
Qwik の再開可能モデルは、ユーザーが操作したときにのみ JavaScript が遅延実行されることを意味します。コンポーネントが表示されたときにブラウザで実行する必要があるコードは useVisibleTask$ を使って実行してください。
@wink/elements npm package TypeScript 型定義付きの CDN バンドルをインストールして読み込みます。
インストール
Section titled “インストール”npm install @wink/elementsuseVisibleTask$ で読み込む
Section titled “useVisibleTask$ で読み込む”useVisibleTask$ は Qwik のブラウザ専用で即時実行されるライフサイクルフックです。ルートレイアウトに配置します。
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> );});ページでの使用例
Section titled “ページでの使用例”import { component$ } from '@builder.io/qwik';
export default component$(() => { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> <wink-lookup /> </main> );});TypeScript — JSX の型宣言
Section titled “TypeScript — JSX の型宣言”Qwik は独自の JSX 名前空間を使用しています。宣言ファイルで拡張してください:
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; } }}Qwik(Vite ベース)は PUBLIC_ プレフィックスの付いた変数をブラウザに公開します:
PUBLIC_WINK_CLIENT_ID=your-client-id