<强>数据可视化
强>
将数据通过图表的形式展现出来将大大的提升可读性和阅读效率
本例包含柱状图,折线图,散点图,热力图,复杂柱状图,预览面板等
<>强技术栈强>
-
<李> vue2.x李>
<李> vuex存储公共变量,如色值等李>
<李> vue-router路由李>
<李> element-ui饿了么基于vue2开发组件库,本例使用了其中的datePicker李>
<李> echarts一款丰富的图表库李>
<李> webpack ES6,巴别塔,笔…李>
<强>项目截图强>
<强>开发
强>
<强>组件化强>
本项目完全采用组件化的思想进行开发。使用vue-router作为路由,每个页面都是一个组件,每个组件里又包含多个组件。可以看的到,多种图表的标题和日期筛选等都是类似的格式,所以这两个都分别做成了组件。
除此之外,在筛选产品的时候用到的复选框也被我写成了组件,有需要的朋友也可以剥离出去单独使用(不过写的比较粗糙)
每个图表都是一个单独的组件,也可以单独的剥离出去使用。
<>强柱状图强>
本项目包含多种图表,这里挑”柱状图”说一说,其他的图标实现方式类似。
& lt; template> & lt; div类=癿ultipleColumn”比; & lt; v-header: name="名称":legendArr=發egendArr”: myChart=癿yChart祝辞& lt;/v-header> & lt; v-filter: myChart=" myChart " v=癿yChart._dom祝辞& lt;/v-filter> & lt; div类="主"祝辞& lt;/div> & lt;/div> & lt;/template>
页面HTML可以看的到,一个完整的图标是由三个部分组成:
<强> v-header 强>
头组件,存放标题以及不同类型的筛选等
-
<李>名称图表的标题李>
<李> legendArr图表所包含的多种类型李>
<李> myChart当前图表对象李>
<强> v-filter 强>
筛选组件,日期的筛选以及不同产品的筛选
-
<李> myChart当前图表对象李>
v=" myChart._dom "表示在当前图表dom元素渲染完成之后再渲染滤波器组件
主要 <强> 强>
图表的主体文件
需要注意的是:主必须要指定宽高,否则echarts无法渲染dom
<强>初始化强>
初始化需要在vue的安装()方法里执行,因为这里能保证当前的页面元素都已经被加载完成。
安装(){//基于准备好的dom,初始化echarts实例 这一点。myChart=echarts.init (document.querySelector”。multipleColumn .main ')) this.myChart.setOption (this.options)//this.options为echarts的配置,详情可去我的gitHub查看 }
如果要在创建()方法里执行,则需要另外加上
美元。nextTick(()=比;{ this._init () })
<强>仪表板强>
仪表板是一个所有图表的预览,并且有一个点击切换的动画效果,这里大概讲解一个实现方式。
html
& lt;模板lang=癶tml”比; & lt; div类=耙潜砼獭北? & lt; div类=癴lex-container柱”比; & lt; div class="项比; & lt; multipleColumn> & lt;/multipleColumn> & lt;/div> & lt; div类=傲较睢盄click=癱lickChart (2)”比; & lt; column> & lt;/column> & lt;/div> & lt; div class="项三个“@click=癱lickChart (3)”比; & lt; v-line> & lt;/v-line> & lt;/div> & lt; div类=八南罨疃盄click=癱lickChart (4)”比; & lt; point> & lt;/point> & lt;/div> & lt;/div> & lt;/div> & lt;/template> >之前可以看的到,这里是设置了四张图表的包装,每个包装里面装一个图表组件。通过动态的改变风格样式来切换。
<强>整体的思想为:强>
<李>使用百分比布的局,这样才能在不能大小的屏幕做到自适应李> <李>确定图表显示比例,长宽比李> <李>只做一个变换变换,这样才能提高性能李>
<>强性能强>
详解Vue2 + Echarts实现多种图表数据可视化仪表板(附源码)