在Vue中使用echarts,简单使用,组件化使用分析

在项目中不可避免的需要对数据进行可视化处理,也就是用图表展示,就把之前常用的echarts拿来分析一下,先看下效果
在这里插入图片描述
好了,下面进入主题

安装

npm install echarts -S

版本依赖

"vue": "^2.5.2",
"echarts": "^4.8.0",

不写版本依赖的都是耍流氓(版本不对导致出错的案例罄竹难书呀)
在这里插入图片描述

使用

这里展示了3中使用方法,循序渐进,方便大家学习

使用 -(全局引入)

在main.js中

// 引入echarts
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

在页面中, 比如echart.vue中

<div id="myChart" :style="{width: '300px', height: '300px'}"></div>
export default {
  data () {
    return {}
  },
  mounted(){
    this.drawLine();
  },
  methods: {
    drawLine(){
        // 基于准备好的dom,初始化echarts实例
        let myChart = this.$echarts.init(document.getElementById('myChart'))
        // 绘制图表
        myChart.setOption({
            title: { text: '在Vue中使用echarts' },
            tooltip: {},
            xAxis: {
                data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        });
    }
  }
}

注意:我们要在mounted生命周期函数中实例化echarts对象。因为我们要确保dom元素已经挂载到页面中


使用-(按需引入)

由于全局引入会将所有的echarts图表打包,导致体积过大
在echarts.vue文件中

// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱状图组件
require('echarts/lib/chart/bar')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')

注意:使用 require 而不是 import

完整例子-大伙可以直接复制拿走使用

<template>
  <div class="testpage">
    <div class="pageCon">
      <!-- 实验成功 -->
      <div id="myChart" :style="{ width: '300px', height: '300px' }"></div>
    </div>
  </div>
</template>

<script>
// 引入基本模板
let echarts = require('echarts/lib/echarts')
// 引入柱状图组件
require('echarts/lib/chart/bar')
// 引入提示框和title组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
export default {
  data() {
    return {};
  },
  components: { },
  mounted() {
    this.drawLine();
  },
  created() {},
  methods: {
    drawLine() {
      // 基于准备好的dom,初始化echarts实例
      let myChart = echarts.init(document.getElementById("myChart"));
      // 绘制图表
      myChart.setOption({
        title: { text: "在Vue中使用echarts" },
        tooltip: {},
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "bar",
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      });
    }
  }
};
</script>
<style ></style>

使用-(组件化)

提到vue组件化是重要的一点,可以复用,方便维护。。。
那接下来我就简单的将他封装成一个简单的组件
业务场景:在详情页中用饼状图展示总费用的分布

效果图
在这里插入图片描述
我已精简代码,大家可将axios获取数据那一块忽略掉,直接看数据
1. 创建echarts.vue组件

<template>
  <div class="echartsWrap">
    <div id="myChart" class="myChart"></div>
  </div>
</template>

<script>
// 引入基本模板
let echarts = require("echarts/lib/echarts");
// 引入柱状图组件
require("echarts/lib/chart/bar");
require("echarts/lib/chart/pie");
// 引入提示框和title组件
require("echarts/lib/component/tooltip");
require("echarts/lib/component/title");
export default {
  name: "echerts",
  props: {
    datas: {
      style: Array,
      default: []
    }
  },
  data() {
    return {};
  },
  components: {},
  mounted() {
    this.drawLine();
  },
  created() {},
  methods: {
    drawLine() {
      console.log("this.datas: ", this.datas);
      // 检查是否有数据
      if (!this.datas) {
        return;
      }
      // 基于准备好的dom,初始化echarts实例
      let myChart = echarts.init(document.getElementById("myChart"));
      // 绘制图表
      myChart.setOption({
        title: { x: "center" },
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b} : {c} ({d}%)"
        },
        series: [
          {
            name: "访问来源",
            type: "pie",
            radius: "55%",
            center: ["50%", "60%"],
            data: this.datas,
            itemStyle: {
              emphasis: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: "rgba(0, 0, 0, 0.5)"
              }
            }
          }
        ]
      });
    }
  }
};
</script>
<style lang="stylus">
.myChart{
  width: 100%;
  min-height: 220px;
}
</style>

2.页面中使用

 <div v-if="echartsData">
    <echarts :datas="echartsData"></echarts>
  </div>
import Echarts from "@/components/echarts/echarts";
export default {
  name: "goodDetail",
  data() {
    return {
      echartsData: [],
    };
  },
  components: {
    appHead,
    Echarts
  },
  mounted() {
    this.getData();
  },
  methods: {
  	// 获取数据 - 
    getData() {
      let params = {
        code: this.$route.query.id
      };
      this.$api.goods
        .goodsDetail(params)
        .then(res => {
          // 处理echarts的数据
          this.handleChartsData(this.gdData.goods_info);
        })
        .catch(error => {
          console.log("error: ", error);
          this.myloading = false;
        });
    },
    // 处理echarts的数据
    handleChartsData(datas) {
      console.log("data: ", datas);
      this.echartsData = [
        {
          value: datas.price,
          name: "网店售价"
        },
        {
          value: datas.consumer_bond,
          name: "消保金"
        },
        {
          value: datas.skill_price,
          name: "技术年费"
        },
        {
          value: datas.poundage,
          name: "居间费"
        }
      ];
      console.log('处理后的echarts数据: ', this.echartsData);
    }
  }
};

到这里,对echart的简单使用,组件化封装分析完毕,有问题的小伙伴可以随时问我哈

最后如果帮了你的大忙的话,请小伙伴们点个赞或打赏个几毛钱。在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Vue使用Echarts非常简单和方便。首先,我们需要安装Echarts的依赖包。可以通过npm或者yarn来安装Echarts。 npm install echarts 或者 yarn add echarts 一旦安装完成,我们可以在Vue组件引入Echarts。首先,在需要使用Echarts组件,引入Echarts的库。 import echarts from 'echarts' 接下来,在Vue组件的生命周期钩子函数,创建一个Echarts实例并进行配置。 export default { mounted() { // 创建一个 Echarts 实例 const chartContainer = document.getElementById('chart-container') const myChart = echarts.init(chartContainer) // 配置 Echarts myChart.setOption({ // 配置项... }) // 监听窗口变,自动调整图表尺寸 window.addEventListener('resize', () => { myChart.resize() }) }, } 在这个例子,我们在组件的mounted钩子函数进行Echarts实例的创建。使用document.getElementById('chart-container')获取到父元素的DOM节点,然后用echarts.init()方法来创建Echarts实例。 接下来,在setOption()方法,我们可以配置Echarts的显示项。具体的配置项可以参考Echarts官方文档。在这个配置项,我们可以设置图表的类型、数据源、样式等。 最后,我们监听窗口变事件,以及时调整图表的尺寸,使其适应屏幕的大小。 以上就是在Vue使用Echarts的基本步骤。通过这种方式,我们可以方便地在Vue项目使用Echarts来展示图表数据。 ### 回答2: 在Vue使用Echarts非常方便。首先,我们需要在项目安装Echarts依赖包。可以通过npm或yarn安装Echarts,比如在终端输入命令:npm install echarts或yarn add echarts。 安装完成后,我们可以在Vue组件引入Echarts,并在其mounted生命周期钩子进行初始和绘制图表。例如,我们可以在一个柱状图组件使用Echarts: ``` <template> <div id="chart" style="width: 400px; height: 300px;"></div> </template> <script> import echarts from 'echarts'; export default { mounted() { // 初始图表 const myChart = echarts.init(document.getElementById('chart')); // 定义图表的配置项和数据 const option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [120, 200, 150, 80, 70, 110, 130], type: 'bar' }] }; // 使用配置项绘制图表 myChart.setOption(option); } }; </script> ``` 在上述例子,我们首先在template定义一个div容器,用于容纳Echarts图表。然后,在script引入echarts模块,并在mounted()生命周期钩子进行图表的初始和配置。配置项包含x轴、y轴和series数据,我们可以根据具体需求进行自定义。最后,通过调用myChart.setOption(option)方法,将配置项应用到图表,实现图表的绘制。 需要注意的是,我们还可以在Vue组件利用一些生命周期钩子和方法来操作和更新图表,例如在数据发生变时重新绘制图表。这样,我们就可以简单而快速地在Vue项目使用Echarts了。 ### 回答3: 在Vue使用Echarts是非常方便的。首先,我们需要安装echarts库。可以使用npm或yarn命令来安装echarts。安装完成后,我们可以在main.js文件引入Echarts库。 ```javascript import echarts from 'echarts' Vue.prototype.$echarts = echarts ``` 接下来,在需要使用Echarts图表的组件,我们可以使用`<template>`标签来创建一个容器,并在`mounted`生命周期钩子初始和绘制Echarts图表。 ```html <template> <div ref="chart" style="width: 400px; height: 400px;"></div> </template> <script> export default { mounted() { this.initChart() }, methods: { initChart() { const chart = this.$echarts.init(this.$refs.chart) const option = { // 在这里设置你想绘制的图表的配置选项 } chart.setOption(option) } } } </script> ``` 注意,我们在`ref`属性给图表容器指定了一个引用名,并在`mounted`钩子使用`$refs`来引用该容器。然后,我们使用`this.$echarts.init`方法初始图表,并将其挂载到DOM上。 接下来,我们可以在`option`对象设置图表的配置选项,如图表类型、数据、样式等。具体的配置选项请参考Echarts官方文档。 最后,我们使用`chart.setOption(option)`来绘制并更新图表。可以在需要更新图表的时候调用该方法。 以上就是在Vue使用Echarts的基本使用方式。通过这种方式,我们可以在Vue应用轻松使用Echarts来创建各种类型的图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值