vue中使用vueChartJs
乔文飞 Lv8

vue-chartJs

vue-chartJs是vue对Chart.js的封装,可以很简单的创建可复用的图表组件。由于是对底层的封装,所以许多图表的配置,还是需要看这个Chart.js的文档

先简单封装个组件

1
2
3
4
5
6
7
8
9
10
11
12
13
// vBar.vue
<script>
import { Bar } from 'vue-chartjs'

export default {
name: 'vBar',
extends: Bar,
props: ['chartdata', 'options'],
mounted () {
this.renderChart(this.chartdata,this.options)
}
}
</script>

在需要的地方用这个组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// index.vue
<template>
<div class="example-3d">
<vBar :chartdata="vBarData" :options="vOptions" :styles="myStyles"></vBar>
</div>
</template>
<script>
import { vBar } from '@/components/vCharts/vBar'
export default {
name: 'barTest',
components: {
vBar,
},
data() {
return {
vBarData: {
labels: ['1', '2', '3', '4', '5', '6'],
datasets: [
{
data: [1,2,3,4,5,6],
backgroundColor: '#ffa200',
barPercentage: 1,
maxBarThickness: 12,
},
],
},
vOptions: {
// 自适应必须要加的下面两个配置
responsive: true,
maintainAspectRatio: false,
layout: {
padding: {
left: 5,
right: 5,
top: 5,
bottom: 5,
},
},
legend: { display: false },
scales: {
grid: {
x: 10,
x2: 20,
y: 20,
y2: 10,
},
xAxes: [
{
gridLines: {
display: false,
},
ticks: {
display: false,
},
},
],
yAxes: [
{
gridLines: {
display: false,
},
ticks: {
display: false,
},
},
],
},
},
}
},
computed: {
myStyles() {
return {
height: '100px',
// 自适应必须要加的position: 'relative',
position: 'relative',
marginTop: '200px'
}
},
},
mounted() {},
created() {},
methods: {},
}
</script>

vue-chartJs的自适应resize

  • v-chart配置
    1
    2
    3
    4
    Options: {
    responsive: true,
    maintainAspectRatio: false,
    }
  • 组件实例绑定styles属性:styles="myStyles"
    1
    2
    3
    4
    5
    6
    myStyles() {
    return {
    // 自适应必须要加的position: 'relative',
    position: 'relative',
    }
    },
  • 本文标题:vue中使用vueChartJs
  • 本文作者:乔文飞
  • 创建时间:2020-08-26 15:24:53
  • 本文链接:http://www.feidom.com/2020/08/26/vue中使用vueChartJs/
  • 版权声明:本博客所有文章为作者学习笔记,有转载其他前端大佬的文章。转载时请注明出处。