Vai al contenuto

Lingua

Menu della documentazione

SDK Vue

Usa Cookiesh nelle app Vue 3 e Nuxt: installa il plugin, leggi il consenso reattivo con useConsent, proteggi i componenti con ConsentGate e sincronizza gli utenti.

Ultimo aggiornamento: 29 ottobre 2026

L’SDK Vue espone il consenso del visitatore come stato reattivo, così i template si aggiornano nel momento in cui la scelta cambia. Supporta Vue 3.3 e versioni successive e include un modulo per Nuxt.

Installazione

npm install @cookiesh/vue

Carica per primo il tag script di Cookiesh nel <head> del tuo index.html, come mostrato nella guida rapida. Poi registra il plugin:

// main.ts
import { createApp } from 'vue';
import { createCookiesh } from '@cookiesh/vue';
import App from './App.vue';

createApp(App)
  .use(createCookiesh({ siteId: 'ck_live_8f2a91' }))
  .mount('#app');

createCookiesh() accetta le stesse opzioni del provider React: siteId, language e onChange.

useConsent

<script setup lang="ts">
import { watch } from 'vue';
import { useConsent } from '@cookiesh/vue';

const consent = useConsent();

watch(
  () => consent.analytics,
  (allowed) => analytics.setEnabled(allowed),
  { immediate: true },
);
</script>

<template>
  <button type="button" @click="consent.openPreferences()">Impostazioni privacy</button>
</template>

useConsent() restituisce un oggetto reattivo con gli stessi campi dell’hook React: ready, necessary, preferences, analytics, marketing e method, più i metodi acceptAll(), rejectAll(), setConsent(), showBanner() e openPreferences(). Non destrutturarlo, altrimenti i valori perdono la reattività. Usa toRefs(consent) se ti servono ref separati.

ConsentGate

<script setup lang="ts">
import { ConsentGate } from '@cookiesh/vue';
</script>

<template>
  <ConsentGate category="marketing">
    <YouTubeEmbed id="dQw4w9WgXcQ" />
    <template #fallback>
      <VideoPlaceholder />
    </template>
  </ConsentGate>
</template>

Lo slot predefinito viene visualizzato solo quando tutte le categorie indicate sono autorizzate. Passa un array a category per richiedere più categorie.

Utenti con login

Chiama identify() dopo l’accesso e reset() dopo la disconnessione, così la scelta segue l’utente su tutti i suoi dispositivi:

import { useCookiesh } from '@cookiesh/vue';

const cookiesh = useCookiesh();

await cookiesh.identify(user.id);
// …
cookiesh.reset();

useCookiesh() restituisce l’intera API JavaScript, compreso on() per gli eventi.

Nuxt

Aggiungi il modulo e il tuo Site ID a nuxt.config.ts. Il modulo inserisce il tag script nel <head> di ogni pagina e registra il plugin sul client:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@cookiesh/nuxt'],
  cookiesh: {
    siteId: process.env.NUXT_PUBLIC_COOKIESH_SITE_ID,
  },
});

Durante il rendering lato server, ready è false e tutte le categorie tranne necessary sono false, quindi i contenuti che dipendono dal consenso vengono visualizzati solo sul client. Racchiudili in <ClientOnly> o in ConsentGate con un fallback delle stesse dimensioni per evitare spostamenti del layout.