vue + echarts
Posted 每天都要进步一点点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue + echarts相关的知识,希望对你有一定的参考价值。
1.安装echarts依赖
npm install echarts -S
或者使用国内的淘宝镜像:
安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用
cnpm install echarts -S
2.创建图表
全局引入
main.js
// 引入echarts import echarts from \'echarts\' Vue.prototype.$echarts = echarts
Hello.vue
<div id="myChart" :style="{width: \'300px\', height: \'300px\'}"></div>
3.mounted 中调用 (mounted 是 vue 的生命周期,表示挂载完毕,html 已经渲染)
mounted(){ this.$nextTick(function() { this.drawPie(\'myChart\') }) }
4.组件
<template> <!--为echarts准备一个具备大小的容器dom--> <div id="myChart" style="width:300px;height:300px;"></div> </template> <script> export default { name: \'\', data () { return { charts: \'\', opinion:[\'直接访问\',\'邮件营销\',\'联盟广告\',\'视频广告\',\'搜索引擎\'], opinionData:[ {value:335, name:\'直接访问\'}, {value:310, name:\'邮件营销\'}, {value:234, name:\'联盟广告\'}, {value:135, name:\'视频广告\'}, {value:1548, name:\'搜索引擎\'} ] } }, methods:{ drawPie(id){ this.charts = $echarts.init(document.getElementById(id)); this.charts.setOption({ tooltip: { trigger: \'item\', formatter: \'{a}<br/>{b}:{c} ({d}%)\' }, legend: { orient: \'vertical\', x: \'left\', data:this.opinion }, series: [ { name:\'访问来源\', type:\'pie\', radius:[\'50%\',\'70%\'], avoidLabelOverlap: false, label: { normal: { show: false, position: \'center\' }, emphasis: { show: true, textStyle: { fontSize: \'30\', fontWeight: \'blod\' } } }, labelLine: { normal: { show: false } }, data:this.opinionData } ] }) } }, //调用 mounted(){ this.$nextTick(function() { this.drawPie(\'myChart\') }) } } </script> <style scoped> * { margin: 0; padding: 0; list-style: none; } </style>
5.效果图
6.监听扇形区域点击事件
以上是关于vue + echarts的主要内容,如果未能解决你的问题,请参考以下文章
vue2+echarts:使用后台传输的json数据去动态渲染echarts图表