npm-pakke
@wink/elements npm-pakken er den hurtigste måde at tilføje Wink webkomponenter til ethvert JavaScript- eller TypeScript-projekt. Den leverer en load()-funktion, som injicerer CDN-ressourcerne og fulde TypeScript-typeerklæringer for alle komponentattributter.
wink-travel/wink-elements på GitHub Kildekode, API-reference og bidragsvejledning.
Installation
Sektion kaldt “Installation”npm install @wink/elementsKom godt i gang
Sektion kaldt “Kom godt i gang”Kald load() én gang ved app-opstart. Den er idempotent — sikker at kalde flere gange.
import { load } from '@wink/elements';
load({ clientId: 'YOUR_CLIENT_ID' });Brug derefter enhver Wink-komponent i dit HTML eller JSX:
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID"></wink-content-loader>Framework-eksempler
Sektion kaldt “Framework-eksempler”Next.js (App Router)
Sektion kaldt “Next.js (App Router)”'use client';import { useEffect } from 'react';import { load } from '@wink/elements';
export default function RootLayout({ children }: { children: React.ReactNode }) { useEffect(() => { load({ clientId: process.env.NEXT_PUBLIC_WINK_CLIENT_ID! }); }, []); return <html><body>{children}</body></html>;}Nuxt 3
Sektion kaldt “Nuxt 3”import { load } from '@wink/elements';
export default defineNuxtPlugin(() => { load({ clientId: useRuntimeConfig().public.winkClientId });});---import { load } from '@wink/elements';---<script> import { load } from '@wink/elements'; load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID });</script>SvelteKit
Sektion kaldt “SvelteKit”import { load as loadWink } from '@wink/elements';import { browser } from '$app/environment';
export function load() { if (browser) { loadWink({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID }); }}TypeScript-typer
Sektion kaldt “TypeScript-typer”Alle komponentattribut-interface eksporteres til brug i JSX, template literals eller typede ordbøger:
import type { WinkContentLoaderAttributes, WinkLayout } from '@wink/elements';
const attrs: WinkContentLoaderAttributes = { layout: 'HOTEL', // TypeScript fanger ugyldige layout-værdier id: 'abc123', sort: 'POPULARITY',};Brug af staging CDN
Sektion kaldt “Brug af staging CDN”load({ clientId: 'YOUR_CLIENT_ID', cdnBaseUrl: 'https://staging-elements.wink.travel',});load(options)
Sektion kaldt “load(options)”| Option | Type | Påkrævet | Standard | Beskrivelse |
|---|---|---|---|---|
clientId | string | Ja | — | Dit Wink OAuth2 Client ID |
configurationId | string | Nej | — | Valgfrit tilpasnings-ID |
cdnBaseUrl | string | Nej | https://elements.wink.travel | Overskriv CDN-URL |