Headless CMS
Wink interneto komponentai yra nepriklausomi nuo karkaso ir yra pritaikyti kaip HTML elementai. Jei jūsų headless CMS generuoja HTML — nesvarbu, ar tai būtų Next.js, Nuxt, Astro, SvelteKit ar kitas karkasas — galite įterpti Wink komponentus be jokios specialios integracijos.
Trijų žingsnių įterpimas
Section titled “Trijų žingsnių įterpimas”Kiekviena Wink integracija, nepriklausomai nuo platformos, vykdoma trimis tais pačiais žingsniais.
1. Įtraukite stiliaus lapą
Section titled “1. Įtraukite stiliaus lapą”Pridėkite tai į dokumento <head> (arba atitinkamą globalų išdėstymą):
<link rel="stylesheet" href="https://elements.wink.travel/styles.css">2. Įtraukite JavaScript
Section titled “2. Įtraukite JavaScript”Pridėkite tai prieš uždarantįjį </body> žymeklį (arba savo išdėstymo skripto dalyje):
<script src="https://elements.wink.travel/elements.js" type="module" defer></script>3. Pridėkite programos įkroviklį
Section titled “3. Pridėkite programos įkroviklį”Įdėkite tai vieną kartą kiekviename puslapyje, bet kurioje kūno dalyje (dažniausiai globalaus išdėstymo apačioje):
<wink-app-loader client-id="YOUR_CLIENT_ID"></wink-app-loader>Karkaso pavyzdžiai
Section titled “Karkaso pavyzdžiai”Next.js (App Router)
Section titled “Next.js (App Router)”export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /> </head> <body> {children} <script src="https://elements.wink.travel/elements.js" type="module" defer /> <wink-app-loader client-id="YOUR_CLIENT_ID" /> </body> </html> );}Nuxt 3
Section titled “Nuxt 3”<template> <div> <slot /> <wink-app-loader client-id="YOUR_CLIENT_ID" /> </div></template>
<script setup>useHead({ link: [{ rel: 'stylesheet', href: 'https://elements.wink.travel/styles.css' }], script: [{ src: 'https://elements.wink.travel/elements.js', type: 'module', defer: true }],})</script><html lang="en"> <head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /> </head> <body> <slot /> <script src="https://elements.wink.travel/elements.js" type="module" is:inline></script> <wink-app-loader client-id="YOUR_CLIENT_ID"></wink-app-loader> </body></html>SvelteKit
Section titled “SvelteKit”<svelte:head> <link rel="stylesheet" href="https://elements.wink.travel/styles.css" /></svelte:head>
<slot /><wink-app-loader client-id="YOUR_CLIENT_ID" />
<script> import { onMount } from 'svelte'; onMount(async () => { await import('https://elements.wink.travel/elements.js'); });</script>Komponentų įdėjimas į turinį
Section titled “Komponentų įdėjimas į turinį”Jūsų CMS turtingo teksto arba pasirinktinių laukų tipuose įterpkite komponentų žymes tiesiogiai į HTML išvestį:
<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID"></wink-content-loader>Contentful, Strapi, Sanity ar panašioms headless platformoms naudokite Rich Text lauką arba Custom Block, kuris atvaizduoja žalią HTML, ir ten įklijuokite komponento žymę.
npm paketas
Section titled “npm paketas”TypeScript projektams, @wink/elements paketas suteikia:
load()funkciją, kuri programiškai įkelia CDN skriptus- Pilnas TypeScript tipų deklaracijas visiems komponentų atributams
npm install @wink/elementsimport { load } from '@wink/elements';
// Iškvieskite vieną kartą programos paleidimo metuload({ clientId: 'YOUR_CLIENT_ID' });Galimi komponentai
Section titled “Galimi komponentai”| Komponentas | HTML žyma | Paskirtis |
|---|---|---|
| Turinio įkroviklis | <wink-content-loader> | Rodo viešbučių korteles, tinklus, žemėlapius |
| Paieškos laukelis | <wink-lookup> | Paieškos juosta kryptims |
| Paieškos mygtukas | <wink-search-button> | Atidaro maršruto pasirinkimą |
| Paskyros mygtukas | <wink-account-button> | Prisijungimo / vartotojo meniu |
| Maršruto mygtukas | <wink-itinerary-button> | Rodo esamą maršrutą |
| Maršruto pasirinkėjas | <wink-itinerary-picker> | Pilna maršruto forma |
| Prekių krepšelio mygtukas | <wink-shopping-cart-button> | Krepšelio santraukos mygtukas |
Pilną atributų sąrašą žr. Web Components.