Nuxt 3
Nuxt 3 po defaultu renderuje stranice na serveru. CDN skripte i prilagođeni elementi moraju se učitavati samo na klijentskoj strani. Nuxt klijentski plugin je najčistije mesto za to.
@wink/elements npm paket Instalirajte i učitajte CDN paket sa TypeScript tipovima.
Instalacija
Section titled “Instalacija”npm install @wink/elementsKreirajte klijentski plugin
Section titled “Kreirajte klijentski plugin”Sufiks .client.ts govori Nuxt-u da ovaj plugin pokreće samo u pregledaču:
import { load } from '@wink/elements';
export default defineNuxtPlugin(() => { load({ clientId: useRuntimeConfig().public.winkClientId });});Konfigurišite runtime promenljivu
Section titled “Konfigurišite runtime promenljivu”export default defineNuxtConfig({ runtimeConfig: { public: { winkClientId: process.env.NUXT_PUBLIC_WINK_CLIENT_ID, }, },});Dodajte u .env:
NUXT_PUBLIC_WINK_CLIENT_ID=your-client-idKonfigurišite Vue za prilagođene elemente
Section titled “Konfigurišite Vue za prilagođene elemente”Dodajte opciju isCustomElement u kompajler da Vue ne bi upozoravao na nepoznate <wink-*> tagove:
export default defineNuxtConfig({ vue: { compilerOptions: { isCustomElement: (tag) => tag.startsWith('wink-'), }, }, runtimeConfig: { public: { winkClientId: process.env.NUXT_PUBLIC_WINK_CLIENT_ID, }, },});Korišćenje u šablonima
Section titled “Korišćenje u šablonima”Obmotajte Wink komponente u <ClientOnly> da sprečite neslaganja pri SSR hidrataciji:
<template> <main> <ClientOnly> <wink-content-loader layout="HOTEL" :id="layoutId" /> </ClientOnly> </main></template>
<script setup lang="ts">const layoutId = 'YOUR_LAYOUT_ID';</script>TypeScript tipovi
Section titled “TypeScript tipovi”Proširite globalni HTMLElementTagNameMap (isto kao u Vue 3) da biste dobili automatsko dovršavanje atributa. Pogledajte stranicu za Vue 3 integraciju za kompletnu deklaraciju fajla.