Svelte / SvelteKit
Svelte välittää attribuutit suoraan DOM:iin ilman virtuaalista DOM-kerrosta, mikä tekee mukautetuista elementeistä luonnollisen valinnan. SvelteKitille (SSR) lataa CDN onMount-sisällä tai suojaa browser-tarkistuksella.
@wink/elements npm package Asenna ja lataa CDN-paketti TypeScript-tyypeillä.
Asennus
Osio nimeltä “Asennus”npm install @wink/elementsSvelteKit — juuritaso
Osio nimeltä “SvelteKit — juuritaso”import { browser } from '$app/environment';import { load as loadWink } from '@wink/elements';
export function load() { if (browser) { loadWink({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); }}Vaihtoehtoisesti lataa onMount-sisällä +layout.svelte-tiedostossa:
<script> import { onMount } from 'svelte'; import { load } from '@wink/elements';
onMount(() => { load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); });</script>
<slot />Käyttö komponenteissa
Osio nimeltä “Käyttö komponenteissa”Svelte välittää kaikki tuntemattomat attribuutit suoraan DOM:iin, joten lisäkonfiguraatiota ei tarvita:
<script> export let layoutId = 'YOUR_LAYOUT_ID';</script>
<main> <wink-content-loader layout="HOTEL" id={layoutId} /> <wink-lookup /></main>Svelte 5 (runes-syntaksi)
Osio nimeltä “Svelte 5 (runes-syntaksi)”<script lang="ts"> import { onMount } from 'svelte'; import { load } from '@wink/elements';
let { layoutId }: { layoutId: string } = $props();
onMount(() => { load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); });</script>
<wink-content-loader layout="HOTEL" id={layoutId} />Ympäristömuuttujat
Osio nimeltä “Ympäristömuuttujat”SvelteKit altistaa selaimelle vain muuttujat, jotka alkavat PUBLIC_-etuliitteellä:
PUBLIC_WINK_CLIENT_ID=your-client-id<script> import { browser } from '$app/environment';</script>
{#if browser} <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />{/if}Pelkkä Svelte (Vite, ei SvelteKit)
Osio nimeltä “Pelkkä Svelte (Vite, ei SvelteKit)”<script> import { onMount } from 'svelte'; import { load } from '@wink/elements';
onMount(() => { load({ clientId: import.meta.env.VITE_WINK_CLIENT_ID }); });</script>
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />