echarts 按需加载处理

下载内容

npm install echarts --save

按需封装组件

// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core';
import 'echarts/lib/component/legend'
 
// 引入柱状图图表,图表后缀都为 Chart
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import {
    TitleComponent,
    TooltipComponent,
    GridComponent,
    DatasetComponent,
    TransformComponent
} from 'echarts/components';
// 标签自动布局、全局过渡动画等特性
import {LabelLayout, UniversalTransition} from 'echarts/features';
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import {CanvasRenderer} from 'echarts/renderers';
 
// **引入组件 都是以Chart结尾 关键 我这里只用到了折线图, 如果要引入饼状图 PieChart
import {LineChart} from 'echarts/charts';
 
 
// 注册必须的组件
echarts.use([
    TitleComponent,
    TooltipComponent,
    GridComponent,
    DatasetComponent,
    TransformComponent,
    LineChart,
    LabelLayout,
    UniversalTransition,
    CanvasRenderer
]);
 
 
export default echarts

按需组件查寻 :https://echarts.apache.org/zh/cheat-sheet.html
在这里插入图片描述

最后直接使用

引入定义的文件
import ECharts from '@/cs/Echarts'

案例

 
      let charts = ECharts.init(document.getElementById('line-1-right-pie'));
      charts.setOption({
        // 提示
        tooltip: {
          trigger: 'axis',
        },
        grid: {
          bottom: '10%',
        },
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: this.day7Water.map(it => it.time),
          // data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
          axisTick: {
            // 隐藏刻度尺
            show: false,
          }
        },
        yAxis: {
          type: 'value',
          show: false
        },
        series: [
          {
            data: this.day7Water.map(it => it.salesPrice),
            type: 'line',
            areaStyle: {},
            smooth: true,
            // 隐藏折点
            showSymbol: false,
            // 改变线条的颜色和粗细
            lineStyle: {
              color: 'rgba(245,218,47,0.5)',
              width: 2
            },
          }
        ]
      })
      window.addEventListener("resize", () => {
        charts.resize();
      });

借鉴:https://blog.csdn.net/weixin_44912855/article/details/131751221

/*
 * @Author: GeekQiaQia
 * @Date: 2021-12-30 17:22:19
 * @LastEditTime: 2021-12-30 17:34:03
 * @LastEditors: GeekQiaQia
 * @Description:
 * @FilePath: /vue3.0-template-admin/src/views/Dashboard/useInitLineCharts.ts
 */

import * as echarts from 'echarts/core'
import { TitleComponent, ToolboxComponent, TooltipComponent, GridComponent, LegendComponent } from 'echarts/components'
import { LineChart } from 'echarts/charts'
import { CanvasRenderer } from 'echarts/renderers'

echarts.use([TitleComponent, ToolboxComponent, TooltipComponent, GridComponent, LegendComponent, LineChart, CanvasRenderer])

let option

export const useInitLineChart = (chartDom: HTMLElement | undefined) => {
  // var chartDom = document.getElementById('main');
  const myChart = echarts.init(chartDom as HTMLElement)

  option = {
    title: {
      //   text: 'Stacked Line'
    },
    tooltip: {
      trigger: 'axis'
    },
    legend: {
      data: ['Email', 'Union Ads']
    },
    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true
    },
    toolbox: {
      feature: {
        saveAsImage: {}
      }
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
      type: 'value'
    },
    series: [
      {
        name: 'Email',
        type: 'line',
        stack: 'Total',
        smooth: true,
        data: [120, 132, 101, 134, 90, 230, 210]
      },
      {
        name: 'Union Ads',
        type: 'line',
        stack: 'Total',
        smooth: true,
        data: [220, 182, 191, 234, 290, 330, 310]
      }
    ]
  }

  // eslint-disable-next-line no-unused-expressions
  option && myChart.setOption(option)
}

export default { useInitLineChart }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Vue中使用Echarts动态加载数据的步骤如下: 1. 首先,要在Vue组件中定义一个方法来获取动态数据。可以使用异步请求或者其他方式获取数据。在这个方法中,将获取到的数据处理Echarts的格式,并将其赋值给一个变量,比如`eacartsData`。\[3\] 2. 在Vue组件的模板中,使用一个`div`元素来包裹Echarts图表,并给该`div`元素一个唯一的id,比如`echartsOne`。\[2\] 3. 在Vue组件的`mounted`生命周期钩子函数中,调用一个绘制Echarts图表的方法,比如`getEcharts()`。在这个方法中,使用`document.getElementById`方法获取到包裹Echarts图表的`div`元素,然后使用`echarts.init`方法初始化一个Echarts实例,并将其赋值给一个变量,比如`myChart`。接着,定义一个`option`对象,配置Echarts图表的样式和数据。在`series`属性中,将之前处理好的动态数据`eacartsData`赋值给`data`属性。最后,使用`myChart.setOption`方法将配置好的`option`应用到Echarts实例中。\[1\] 4. 最后,在获取到动态数据后,调用获取数据的方法,比如`getData()`。在这个方法中,通过异步请求或其他方式获取到数据,并将其处理Echarts的格式。然后,将处理好的数据赋值给`eacartsData`变量,并调用`this.getEcharts()`方法重新绘制Echarts图表。\[3\] 这样,就可以实现在Vue中动态加载数据并绘制Echarts图表了。 #### 引用[.reference_title] - *1* *2* *3* [vue引入echarts图表,动态获取数据](https://blog.csdn.net/cuiyiran_/article/details/125456085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web修理工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值