当前位置: 首页 > news >正文

vue使用echarts

一、安装echarts依赖

npm install echarts -S

二、引入echarts

(1)全局引入

main.js

import echarts from "echarts";

然后更改原型链,这样就可以在全局使用通过this.$echarts来全局使用了

Vue.prototype.$echarts = echarts;

使用图表

新建一个组件element.vue组件

<template>
  <!--为echarts准备一个具备大小的容器dom-->
  <div id="main" style="width: 600px;height: 400px;"></div>
</template>
<script>
//import echarts from 'echarts'
    export default {
        name: '',
        data () {
            return {
                charts: '',
                opinion:['直接访问','邮件营销','联盟广告','视频广告','搜索引擎'],
                opinionData:[
                  {value:335, name:'直接访问'},
                  {value:310, name:'邮件营销'},
                  {value:234, name:'联盟广告'},
                  {value:135, name:'视频广告'},
                  {value:1548, name:'搜索引擎'}
                ]
            }
        },
        methods:{
            drawPie(id){
               this.charts = this.$echarts.init(document.getElementById(id));//$echarts就是引入时原型链的更改
               this.charts.setOption({
                 tooltip: {
                   trigger: 'item',
                   formatter: '{a}<br/>{b}:{c} ({d}%)'
                 },
                 legend: {
                   orient: 'vertical',
                   x: 'left',
                   data:this.opinion
                 },
                 series: [
                   {
                     name:'访问来源',
                     type:'pie',
                     radius:['50%','70%'],
                     avoidLabelOverlap: false,
                     label: {
                       normal: {
                         show: false,
                         position: 'center'
                       },
                       emphasis: {
                         show: true,
                         textStyle: {
                           fontSize: '30',
                           fontWeight: 'blod'
                         }
                       }
                     },
                     labelLine: {
                       normal: {
                         show: false
                       }
                     },
                     data:this.opinionData
                   }
                 ]
               })
            }  
        },
      //调用
        mounted(){
            this.$nextTick(function() {
                this.drawPie('main')
            })
        }
    }
</script>
<style scoped>
    * {
        margin: 0;
        padding: 0;
        list-style: none;
    }
</style>

  

(二)按需引入

这时就不需要再main.js中进行配置了

再组件中引入自己需要的模板,更多模板https://github.com/ecomfe/echarts/blob/master/index.js

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

  

 注:这里用 requir 不用 import 引入是因为 import 需要详细的路径

另外 

var myChart = echarts.init(this.$el);//this.$el指的是当前组件的元素
按需引用的时候将 this.$echarts 改为 echarts(引入时的名)

 三、echarts图表自适应

mounted() {
    let vueThis = this;
    window.addEventListener("resize",function (event) {
        vueThis.chart.resize();
    })
}

  

 

转载于:https://www.cnblogs.com/YAN-HUA/p/9603292.html

相关文章:

  • luogu 1772 物流运输 ZJOI2006 spfa+dp
  • Java快速教程
  • python接口自动化测试二十八:连接SQL sever操作
  • python中如何去掉字符串中的空格
  • jupyter、flask、tornado、djiango安装
  • BZOJ2768 JLOI2012冠军调查(最小割)
  • Js判断参数(String,Array,Object)是否为undefined或者值为空
  • 图片合成
  • 对象 get和set方法
  • spsss基本统计分析操作攻略
  • liunx环境下mongodb3.2升级至3.6
  • Keil MDK下如何设置非零初始化变量(复位后变量值不丢失)
  • web服务器下出现大量TIME_WAIT
  • 正则 常见2
  • js限制文本框只能输入数字方法小结
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 2019年如何成为全栈工程师?
  • 4个实用的微服务测试策略
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CODING 缺陷管理功能正式开始公测
  • DOM的那些事
  • Facebook AccountKit 接入的坑点
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Redis的resp协议
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Yeoman_Bower_Grunt
  • 翻译:Hystrix - How To Use
  • 简析gRPC client 连接管理
  • 看域名解析域名安全对SEO的影响
  • 前端知识点整理(待续)
  • 深度学习中的信息论知识详解
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 学习ES6 变量的解构赋值
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #ifdef 的技巧用法
  • #Spring-boot高级
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (办公)springboot配置aop处理请求.
  • (初研) Sentence-embedding fine-tune notebook
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (十三)Flask之特殊装饰器详解
  • (算法设计与分析)第一章算法概述-习题
  • (转)VC++中ondraw在什么时候调用的
  • (转载)Google Chrome调试JS
  • (转载)从 Java 代码到 Java 堆
  • ***详解账号泄露:全球约1亿用户已泄露
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core中Emit的使用
  • .NET 回调、接口回调、 委托
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试