Vue 3 (Composition API)
<template>
<div data-cuprice-id="YOUR_SHARE_ID"></div>
</template>
<script setup>
import { onMounted, onUnmounted } from "vue";
let script;
onMounted(() => {
script = document.createElement("script");
script.src = "https://app.cuprice.io/embed.js";
script.async = true;
document.body.appendChild(script);
});
onUnmounted(() => {
if (script) document.body.removeChild(script);
if (window.Cuprice) window.Cuprice.destroy();
});
</script>
Nuxt 3
Use theuseHead composable:
<template>
<div data-cuprice-id="YOUR_SHARE_ID"></div>
</template>
<script setup>
useHead({
script: [
{ src: "https://app.cuprice.io/embed.js", async: true }
]
});
</script>
Call
window.Cuprice.destroy() on unmount to clean up event listeners and observers.