首页 前端知识 【Vue插件】Vue中封装Echarts插件

【Vue插件】Vue中封装Echarts插件

2024-02-02 09:02:04 前端知识 前端哥 493 557 我要收藏

echarts插件封装

百度的echarts裤并没有在vue中封装插件,我们在项目中使用 echarts时,在组件中去引用,从而导致我们的项目不好管理,特别是echarts用的多的情况下,整个项目不好维护,止于此,我们可以考虑将echarts封装成一个插件,从而方便管理,话不多说,上干货。

众所周知,Vue.use(XXX)中,XXX代表插件名,这个方法表示中代表插件中必须要实现一个install方法

1.安装

npm install echarts@4.X -S

2.使用

2.1 第一种方式:组件内使用

组件的方式是需要在用到的组件中引入整个echarts裤,优点是方便直接,缺点也很明显,用到的地方多了会使得整个项目变的臃肿

<template>
  <!-- 需要设置改div的宽度和长度才能显示 -->
  <div id="main" style="width: 1200px; height: 500px"></div>
</template>

<script>
// 第一种方式:哪个组件需要就在哪个组件引入
import echarts from "echarts";
export default {
  mounted() {
    this.initEcharts();
  },
  methods: {
    initEcharts() {
      var myChart = echarts.init(document.getElementById("main"));
      // 指定图表的配置项和数据
      var option = {
        title: {
          text: "ECharts 入门示例",
        },
        tooltip: {},
        legend: {
          data: ["销量"],
        },
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "line",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    },
  },
};
</script>

<style>
</style>

2.2 第二种方式:在原型对象上挂载

在原型对象上挂载的方式是比较省空间的,但这样每个组件都可以去修改这个原型对象,这样会导致系统不稳定,可能会出现某些未知的错误,鉴于此,请看第三种方式

在main.js中:

import echarts from 'echarts'
Vue.prototype.$echarts = echarts

组件中使用:

<template>
  <!-- 需要设置改div的宽度和长度才能显示 -->
  <div id="main" style="width: 1200px; height: 500px"></div>
</template>

<script>
export default {
  mounted() {
    this.initEcharts();
  },
  methods: {
    initEcharts() {
      // 在组件中直接使用this.$echarts来进行操作
      var myChart = this.$echarts.init(document.getElementById("main"));
      // 指定图表的配置项和数据
      var option = {
        title: {
          text: "ECharts 入门示例",
        },
        tooltip: {},
        legend: {
          data: ["销量"],
        },
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "line",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };
      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    },
  },
};
</script>

<style>
</style>

2.3 第三种方式:将echarts封装成plugins

将echart封装成plugins插件后,我们只需要传参调用就可以使用echarts,整个项目的图表方便管理。也不会那么臃肿,封装Vue插件的方法就是需要导出一个install(Vue,options)的方法,该原理主要是利用Object.defineProperties给Vue.prototype添加属性,这样的话,可以避免第二种方式中,某些情况会修改Vue原型中的对象。

2.3.1 新建plugins/EchartsPlugin.js文件
import Vue from "vue";
import echarts from "echarts";
const install = function (Vue, options) {
  // 给Vue中的prototype添加属性
  Object.defineProperties(Vue.prototype, {
    $mychart: {
      get() {
        return {
          // 定义折线图,我们可以先传一个ID,在项目开发中可以传入options参数
          line(id) {
            var myChart = echarts.init(document.getElementById(id));
            // 指定图表的配置项和数据
            var option = {
              title: {
                text: "ECharts 入门示例",
              },
              tooltip: {},
              legend: {
                data: ["销量"],
              },
              xAxis: {
                data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
              },
              yAxis: {},
              series: [
                {
                  name: "销量",
                  type: "line",
                  data: [5, 20, 36, 10, 10, 20],
                },
              ],
            };
            // 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option);
          },
        };
      },
    },
  });
};

export default install;

2.3.2 在main.js中执行
import EchartsPlugin from '@/plugins/EchartsPlugin'
// 调用EcahrtsPlugin中的install方法
Vue.use(EchartsPlugin);
2.3.4 组件中使用(可根据实际情况传参)
<template>
  <!-- 需要设置改div的宽度和长度才能显示 -->
  <div id="main" style="width: 1200px; height: 500px"></div>
</template>

<script>
export default {
  mounted() {
    this.initEcharts();
  },
  methods: {
    initEcharts() {
      this.$mychart.line('main');
    },
  },
};
</script>

<style>
</style>

以上为echarts使用的三个简单方法,以后再补充。。。。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/1127.html
标签
评论
发布的文章

jQuery ---- 插件

2024-02-15 14:02:06

CSS-JavaScript-Jquery-Servlet

2024-02-15 14:02:00

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!