我爱编程

在Vue项目中实现数据可视化操作

2018-04-16  本文已影响0人  示十

        话说最近一直在攻在网上花二十块大洋买的vue音乐播放器项目,收获颇多!对vue项目整体的流程有了更进一步的了解,打算花点空余时间把这个项目再撸几遍,然后转入京东的项目实战中。。。

        实际工作中一直涉及的是数据可视化操作(Echarts、Highcharts),即大量数据图表展示,却独独没有用到丁点儿的vue知识,感觉实在是让人憋得心慌,晚上没事干脆试验一把,如题:在Vue项目中实现数据可视化操作

Echarts  步骤:

一、安装插件

        cnpm install echarts -D

注:echarts 也不能通过 Vue.use() 进行全局调用

所以,通常在需要使用图表的 .vue文件中直接引入

import echarts from 'echarts'

也可以在main.js中引入,然后修改原型链

Vue.prototype.$echarts = echarts

这样在全局中就可以直接使用了

let mychart = this.$echarts.init(document.getElementById('mychart'))

二、创建图表

        由于一般情况我们会在组件中使用,这里我也贴近实际开发,举的例子就是应用于组件中

创建图表

数据导入

这样图表就可以在页面中展示出来了

效果展示

问题:这里引入的 echarts 包含了所有图表,但有时候我们只需要一两个基本图表,这时候完整的 echarts 就显得累赘,所以:

二、按需引入

    // 引入基本模板letecharts = require('echarts/lib/echarts')

  // 引入饼图组件require('echarts/lib/chart/pie')

  // 引入提示框和图例组件require('echarts/lib/component/tooltip')

  require('echarts/lib/component/legend')

可以按需引入的模块列表见https://github.com/ecomfe/echarts/blob/master/index.js

继续引出问题:在echarts中图表宽高如果不写,那么就相当于作死,所以nozuonodie,所以:

三、适应容器

let chartBox = document.getElementsByClassName('charts')[0]

let myChart = document.getElementById('myChart')

// 用于使chart自适应高度和宽度,通过窗体高宽计算容器高宽

function resizeCharts () {

  myChart.style.width = chartBox.style.width + 'px'

  myChart.style.height = chartBox.style.height + 'px'

}

// 设置容器高宽

resizeCharts()

let mainChart = echarts.init(myChart)

mainChart.setOption(options)

四、扩展

可以把这个案例模块化,设计成一个可复用组件,只需传入id、options既可完成图表渲染

参考案例:https://www.2cto.com/kf/201707/660054.html

刚好,参考案例中用的是highcharts

上一篇下一篇

猜你喜欢

热点阅读