Vue项目中使用echarts教程

步骤

npm 安装ECharts

npm install echarts --save

引入 ECharts

  • (1)全局使用:在项目入口文件main.js中引入Echarts
  • (2)局部使用:就直接在所需要的页面中引入Echarts

老版本引入方式 (v4版本)

//全部引入
import echarts from 'echarts';
// 或者按需引入
import echarts from 'echarts/lib/echarts';

//以下函数,是用在在main.js里面的
//通过Vue.prototype 将echarts保存为全局变量,才能真正使用
Vue.prototype.$echarts = echarts 

新版本引入方式 (v5版本)

//全部引入
import * as echarts from 'echarts';
// 按需引入
import * as echarts from 'echarts/lib/echarts';

//以下函数,是用在在main.js里面的
//通过Vue.prototype 将echarts保存为全局变量,才能真正使用
Vue.prototype.$echarts = echarts 

ECharts初体验

同一个页面里面 id 命名要是唯一的哦!!!

<template>
    <!-- 关键声明: id  和 width 和  height 都会影响图表的展示-->
    <div id="demo" style="width: 500px;height:400px;"></div>
</template>

<script>
    export default {
        name: "HelloWord",
        mounted(){
            //进入页面就执行一次
            this.drawChart();
        },
        methods: {
            drawChart() {
                //2. 基于准备好的dom,初始化echarts实例
                //此处的意思就是,对 demo 元素 进行图表初始化的相关操作
                var myChart = this.$echarts.init(document.getElementById('demo'));
                //3. 指定图表的配置项和数据
                //该处就是图表内容,在官网的示例里面,要复制过来到项目里面的也是这一块内容
                var option = {
                    title: {
                        text: 'ECharts 入门示例'
                    },
                    tooltip: {},
                    legend: {    //图例组件
                        data:['销量']
                    },
                    xAxis: {
                        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
                    },
                    yAxis: {},
                    series: [{
                        name: '销量',
                        type: 'bar',
                        data: [5, 20, 36, 10, 10, 20]
                    }]
                };
                //4.使用刚指定的配置项和数据显示图表。
                myChart.setOption(option);

            }
        },
        
    }
</script>

<style scoped>

</style>

ECharts组件化(进阶写法)

同一个页面里面 id 命名要是唯一的哦!!!

把需要图表vue页面,抽成子组件,供父组件使用,更加方便

ECharts图表子组件案例
son.vue

<template>
<div style="width:100%;height:100%;margin:0;">
  <!-- 这个id接收父页传进来的id,也就是动态接收-->
  <div :id="id style="width:100%;height:100%""></div>
</div>

</template>

<script>
//使用echarts局部引入的方式(我这边的版本是5版本)
import * as echarts from 'echarts';
export default {
  props:["id","datas"],//接收父页传入值
  data() {
    return {
     
    };
  },
  computed:{
    
  },
  watch:{
   
  },
  mounted() {
    _this= this;
    this.getChartData();
  },
  methods: {
    getChartData() {
      console.log("echar内部");
      console.log("父页传入的datas",this.datas);
      this.drawChart();
    },
    drawChart() {
      //初始化echarts实例
      let myChart = echarts.init(document.getElementById(this.id));
      // 清空图表,重新渲染图表
      myChart.clear();

      let option = {
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
            label:{
              color: '#ffffff'
            },
            crossStyle: {
              color: '#ffffff'
            }
          }
        },
        legend: {
          data: ['短信推送量', '站内消息量'],
          textStyle:{
            color: '#ffffff'//字体颜色
          },
        },
        xAxis: [
          {
            type: 'category',
            data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
            axisPointer: {
              type: 'shadow'
            },
            axisLabel: {
              show: true,
              textStyle: {
                color: '#ffffff'
              }
            }
          }
        ],
        yAxis: [
          {
            type: 'value',
            name: '短信推送量(条)',
            nameTextStyle:{
              color:"#ffffff",
            },
            min: 0,
            max: 250,
            interval: 50,
            axisLabel: {
              formatter: '{value} ',
              textStyle: {
                color: '#ffffff'
              }
            },
            splitLine :{    //网格线
              show:true, //隐藏或显示
              lineStyle:{
                type:'dotted'    //设置网格线类型 dotted:虚线   solid:实线
              },
            }
          },
          {
            type: 'value',
            name: '站内消息量(条)',
            nameTextStyle:{
              color:"#ffffff",
            },
            min: 0,
            max: 25,
            interval: 5,
            axisLabel: {
              formatter: '{value} ',
              textStyle: {
                color: '#ffffff'
              }
            },
            splitLine :{    //网格线
              show:true, //隐藏或显示
              lineStyle:{
                type:'dotted'    //设置网格线类型 dotted:虚线   solid:实线
              },
            }
          }
        ],
        series: [
          {
            name: '短信推送量',
            type: 'bar',
            tooltip: {
              valueFormatter: function (value) {
                return value + ' 条';
              }
            },
            data: [
              2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
            ]
          },
          {
            name: '站内消息量',
            type: 'line',
            yAxisIndex: 1,
            tooltip: {
              valueFormatter: function (value) {
                return value + ' 条';
              }
            },
            data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
          }
        ]
      };

      // 调用setOption
      myChart.setOption(option)

      //建议加上以下这一行代码
      //不加的话,当浏览器窗口缩小的时候,样式会出现问题
      window.addEventListener("resize", function() {
        myChart.resize();
      });
    }
  }
};
</script>

父页(引用子组件的vue页面)

father.vue

<template>
<div>
   <!-- 用v-if 保证图表初始赋值时能够正常显示内容-->
   <div v-if="SonData!==null" style="height: 231px;">
   <!-- 注意看我这边的id 接收的是静态的字符串字面量(表示不可更改)-->
     <Son :id="'Son'" :datas="SonData"></Son>
   </div>
</div>
</template>

<script>
//引入子组件
import Son from "./components/echarts/Son";

export default {
  name: "father",
  data() {
   return {
     SonData: null,
   };
 },
 //import引入的组件需要注入到对象中才能使用
  components: {
    Son,
  },
  mounted(){},
  methods: {},    
}
</script>

<style scoped>

</style>

参考文章
【1】Vue项目中使用echarts教程
https://blog.csdn.net/SatanDYG/article/details/115050822

【2】在vue中使用Echarts[官方5分钟上手ECharts]
https://www.cnblogs.com/ludeng-blog/p/12531903.html

【3】ECharts官网
https://echarts.apache.org/handbook/zh/basics/release-note/v5-upgrade-guide/

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue 使用 Echarts 需要先安装 Echarts,然后在 Vue 项目引入 EchartsJavaScript 文件和样式文件。 下面是一个简单的使用教程: 1. 安装 Echarts: ``` npm install echarts --save ``` 2. 在 Vue 组件引入 Echarts: ```javascript import echarts from 'echarts' ``` 3. 在 Vue 组件创建一个 Echarts 实例: ```javascript export default { data() { return { chart: null, } }, mounted() { // 初始化图表 this.chart = echarts.init(this.$refs.chart) // 调用更新图表方法 this.updateChart() }, methods: { updateChart() { // 更新图表数据 this.chart.setOption({ // Echarts 配置项 }) }, }, } ``` 4. 在 Vue 模板添加一个 div 元素用来渲染图表: ```html <template> <div ref="chart" style="width: 100%; height: 300px;"></div> </template> ``` 这样就可以在 Vue 使用 Echarts 了。在 `updateChart` 方法,可以使用 Echarts 的配置项来设置图表的样式、数据等。具体配置项可以参考 Echarts 官方文档。 ### 回答2: Vue使用Echarts需要先引入Echarts的库文件,可以通过npm安装,然后在Vue组件使用import引入所需的Echarts模块。接下来,我们可以创建一个div元素作为容器来展示Echarts图表。 要在Vue使用Echarts,首先需要在Vue组件的data选项定义一个echarts实例,然后在mounted生命周期钩子函数初始化该实例。 在mounted函数,我们可以使用echarts.init方法初始化一个实例,并将其绑定到之前定义的div容器,如: ```javascript import echarts from 'echarts' export default { data () { return { chartInstance: null } }, mounted () { this.chartInstance = echarts.init(this.$el) // 在此处调用方法来更新或者显示图表数据 } } ``` 接着,我们可以在mounted函数调用echarts的方法来更新或显示图表数据。例如,使用setOption方法设置图表的配置项和数据,如: ```javascript mounted () { this.chartInstance = echarts.init(this.$el) this.chartInstance.setOption({ title: { text: '柱状图示例' }, xAxis: { data: ['A', 'B', 'C', 'D', 'E'] }, yAxis: {}, series: [{ name: '销量', type: 'bar', data: [5, 20, 36, 10, 10] }] }) } ``` 这样,我们就可以在Vue使用Echarts来创建和显示图表了。可以根据Echarts的官方文档,使用各种方法和配置项来实现各种不同类型和样式的图表。 ### 回答3: Vue使用Echarts需要以下几个步骤: 1. 在项目安装Echarts:可以通过npm或yarn命令进行安装。命令如下: ``` npm install echarts --save ``` 2. 在Vue组件引入Echarts库: ```javascript import echarts from 'echarts' ``` 3. 在Vue组件的`mounted`生命周期钩子初始化图表: ```javascript mounted() { // 创建图表实例 const chart = echarts.init(this.$refs.chartContainer); // 配置图表参数 const options = { // ... 这里是图表的配置项和数据,具体参数可以参考Echarts官方文档 }; // 设置图表参数 chart.setOption(options); // 监听窗口大小改变事件,自适应调整图表大小 window.addEventListener('resize', () => { chart.resize(); }); } ``` 4. 在Vue组件模板添加图表容器: ```html <div ref="chartContainer" style="width: 100%; height: 400px"></div> ``` 5. 在Vue组件的`beforeDestroy`生命周期钩子销毁图表实例: ```javascript beforeDestroy() { // 销毁图表实例 echarts.dispose(this.$refs.chartContainer); } ``` 通过以上步骤,就可以在Vue项目成功使用Echarts来展示图表了。当然,在实际使用可以根据具体需求进行更多的配置和交互操作。有关更详细的教程和API文档,可以查阅Echarts官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值