<script setup> import { ref, watch, computed, onMounted } from 'vue' import { Chart, LineElement, PointElement, LineController, LinearScale, CategoryScale, Tooltip } from 'chart.js' const props = defineProps({ data: { type: Object, required: true } }) const root = ref(null) let chart Chart.register(LineElement, PointElement, LineController, LinearScale, CategoryScale, Tooltip) onMounted(() => { chart = new Chart(root.value, { type: 'line', data: props.data, options: { responsive: true, maintainAspectRatio: false, scales: { y: { display: false }, x: { display: true } }, plugins: { legend: { display: false } } } }) }) const chartData = computed(() => props.data) watch(chartData, data => { if (chart) { chart.data = data chart.update() } }) </script> <template> <canvas ref="root" /> </template>