昂扬生长  
本文是基于echarts学习(coderwhy老师课程)及实践后总结文章, 所需工具/框架版本如下

echart版本 :v5.4.2

vue版本:v3.2.45

ts版本:v4.7.4

element-plus版本: v2.2.29

安装countup.js命令

        npm install countup.js

      下载安装echarts

        npm install echarts

 

本总结是基于vue3中使用echarts5 以及 利用ts对echart组件进行封装的一系列操作,本总结代码均为截图,私心希望读者和作者都能亲自实践代码,拒绝copy。

那么废话少说,开始上代码

 


 

1.  统计分析页面(dashboard.vue)使用element栅格进行布局

  • dashboard.vue

 

 2. 抽离组件

分别包括数字面板组件count-card,统计面板组件chart-card及特定图表组件(如:pie-echart, map-echart等)

3 . 在统计分析页面(dashboard.vue通过store获取页面所需数据

  • dashboard.vue

 

fetchAnalysisStore(action方法为发起请求的方法

4 . strore通过action发起请求(使用pinia)

  • store

 

此处通过调用已经封装好的 axios 请求,获取数据,并且通过Promise的请求方式来防止多个请求的阻塞

5. store的action通过service的发起post请求

  • service

 

 此处的ZRequest方法为已经封装好的 axios请求方法

6 .dashboard.vue 将获取到的数据传递给子组件们

  • dashboard.vue

 

ps:通过 v-bind 可以将 item 中 的属性值 直接绑定为 组件的属性值

比如: item = { name: "zooey",age:18}

通过v-bind 的绑定

<count-card v-bind="item">

则等同于

<count-card :name="item.name" :age="item.age">

7 . count-card组件获取数据,对数据进行布局和展示,并且使用countup对数据的数字进行包裹,实现滚动效果

  • count-card组件

 

 

8 .chart-card组件实现卡片效果,并在卡片中使用图标组件(这里指 pie-chart组件等),作为插槽使用

  • chart-card组件

 

9 .在图表组件中(这里指 pie-chart组件等),创建一个base-echart组件,对一些重复的、公共的代码进行封装,当不同图表组件使用base-echart的时候,就只需要传递option数据就可以了。

  • base-echart:

 

要注意:

将option数据使用watchEffect进行监听,保证option数据可以被实时更新

 

base-echart 首先进行echart的初始化(前提条件是你下载的echarts并且在该页面引用了echarts哈~),其次将获取到的option数据进行setOption的操作 ,第三步是对echarts图表的缩放操作

10.在图表组件中引入base-echart,只在图表组件获取、处理和传递option数据

  • pie-echart组件

 

要注意:

将option数据使用computed进行监听,保证请求获取的数据可以被实时更新,然后将最新的option 传递给base-echart

option数据可以在echarts官网直接复制实例代码

 

齐活~ 看页面

 

 

 

posted on 2023-03-28 15:30  昂扬生长  阅读(747)  评论(0编辑  收藏  举报