Vue

Mount ScheduleSpark browser packages from Vue components.

Vue

Use a template ref and Vue lifecycle hooks for mount/destroy.

<script setup lang="ts">
import { onBeforeUnmount, onMounted, ref } from "vue";
import { createDatePicker, type DatePickerInstance } from "@schedulespark/date-picker";
import "@schedulespark/date-picker/styles.css";

const host = ref<HTMLDivElement | null>(null);
let picker: DatePickerInstance | undefined;

onMounted(() => {
  if (!host.value) {
    return;
  }

  picker = createDatePicker({
    label: "Start date",
    value: "2026-07-04",
    onChange: console.log
  });

  picker.mount(host.value);
});

onBeforeUnmount(() => {
  picker?.destroy();
});
</script>

<template>
  <div ref="host" />
</template>