vue-chartjs

这篇博客介绍了如何结合Vue.js和Chart.js库来创建交互式的数据图表。通过具体的DEMO展示和API讲解,作者详细阐述了代码实现过程,帮助读者理解如何在Vue组件中集成Chart.js进行数据可视化。

DOCUMENT:
https://www.chartjs.org/docs/latest/charts/line.html
DEMO:
http://demo.vue-chartjs.org/
API:
https://vue-chartjs.org/zh-cn/

demo code:

//chart.vue
<script>
import { Line, mixins } from "vue-chartjs";
const { reactiveProp } = mixins;
export default {
  extends: Line,
  mixins: [reactiveProp],
  props: ["options"],
  mounted() {
    this.renderChart(this.chartData, this.options);
  },
  watch: {
    chartData: function(val, oldVal) {
      console.log("watcher invoked");
      this.$data._chart.destroy();
      this.renderChart(this.chartData, this.options);
    }
  }
};
</script>
//useChart.vue
<template>
	<line-chart class="w-100 plineChart" :chart-data="chartdata" :options="options"></line-chart>
</template>

<script>
import lineChart from "@/components/chart";
export default {
	data(){
		labels:[2, 4, 6, 8, 10],
		aLineArr:[0, 1, 2, 3, 4, 5],
		bLineArr:[10, 20, 30, 40, 50],
		chartData:null,
		options:{
        	legend: {
          		position: "bottom"
        	},
        	scales: {
          		yAxes: [
            		{
              			id: "A",
              			type: "linear",
              			position: "left"
            		}
          		]
        	},
        	elements: {
          		line: {
            		fill: false
          		}
        	},
        	responsive: true,
        	maintainAspectRatio: false
      	}
	},
	components: {
    	lineChart: lineChart
	},
	methods:{
		getChartData(){
			this.chartdata = {
        		labels: labels,
        		datasets: [
          			{
			            label: "A Line",
			            lineTension: 0, //偏移度 0是直线 
			            backgroundColor: "#41c7db",
			            borderColor: "#41c7db",
			            data: aLineArr,
			            yAxisID: "A"
			        },
	          		{
			            label: "B Line",
			            lineTension: 0, //偏移度 0是直线 
			            backgroundColor: "green",
			            borderColor: "green",
			            data: bLineArr,
			            yAxisID: "A"
			        }
        		]
      		}
		}
	}
}
</script>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值