Я использую Vue + Vuetify. Никогда не изучал Vue standlone пошел прямо в дуэт
Я пытаюсь воссоздать спарклайн metri c - можно увидеть в этом codepen"PageViews" (Источник начинается с строка 30 в JS)
Проблема: Vue Автономный имеет другой метод регистрации компонентов. Я попытался перенастроить код и зарегистрировать компонент в соответствии с правилами Vuetify. Обычно спарклайн в Vuetify просто вызывается с <v-sparkline/>
.
Несмотря на мои усилия, я застреваю с ошибкой: TypeError: «this.Chart не является функцией».
Что я делаете неправильно?
Моя попытка: metri c. vue
<template>
<div class="br2">
<div class="pa3 flex-auto bb b--white-10">
<h3 class="mt0 mb1 f6 ttu white o-70">{{ title }}</h3>
<h2 class="mv0 f2 fw5 white">{{ value }}</h2>
</div>
<div class="pt2">
<canvas></canvas>
</div>
</div>
</template>
<script>
export default {
props: ["title", "value"],
data () {
return {
ctx: null,
}
},
mounted () {
this.ctx = this.$el.querySelector("canvas").getContext("2d");
let sparklineGradient = this.ctx.createLinearGradient(0, 0, 0, 135);
sparklineGradient.addColorStop(0, "rgba(255,255,255,0.35)");
sparklineGradient.addColorStop(1, "rgba(255,255,255,0)");
let data = {
labels: ["A", "B", "C", "D", "E", "F"],
datasets: [{
backgroundColor: sparklineGradient,
borderColor: "#FFFFFF",
data: [2, 4, 6, 4, 8, 10]
}]
};
this.Chart(this.ctx, {
data: data,
options: {
elements: {
point: {
radius: 0
}
},
scales: {
xAxes: [{
display: false
}],
yAxes: [{
display: false
}]
}
}
});
}
}
</script>