问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vue中学会使用Echarts生成各种各样的图表,学习方法

发布网友 发布时间:2024-09-09 15:02

我来回答

1个回答

热心网友 时间:2024-11-19 03:10

直接进入主题...在vue中使用个啥,都差不多是一个流程。

引入Echarts

安装

npminstallecharts--save

我们写一个Echarts组件,在内进行引入

import*asechartsfrom'echarts'入门使用

如果之前没有接触过Vue或者Echarts的小伙伴,了解方式无疑就是Echarts官方文档或各大搜索引擎了。

我的了解方式无疑也是这个,但是我在看官方文档的时候,觉得官方给的那个例子,有点点不符合Vue的风格,不过我先贴出来,实现最简单的入门:

<template><divid="ECharts"style="width:600px;height:600px"></div></template><script>import*asechartsfrom'echarts'exportdefault{mounted(){this.createEcharts();},methods:{createEcharts(){//基于准备好的dom,初始化echarts实例varmyChart=echarts.init(document.getElementById("echarts"));//绘制图表//最重要的就是理解各个配置的作用吧,这个没啥说的就算熟能生巧myChart.setOption({title:{text:"ECharts入门示例",},tooltip:{},xAxis:{data:["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],},yAxis:{},series:[{name:"销量",type:"bar",data:[5,20,36,10,10,20],},],});}}};</script>

将这个组件,在app组件中进行引入即可,我们来看看初始效果是如何的。

问题1)从DOM操作改为ref

不知道你们有没有发现问题所在:

官方文档中它是直接对于dom进行操作的document.getElementById("echarts"),这和Vue的理念其实是不一样的。

在vue中我们要做到尽可能减少直接对dom的操作,那么在这里我们可以如何改进勒??

我们明确一下document.getElementById("echarts")获得的是什么即可了。这里无疑就是获得了节点信息,打印出来可以看到console.log(document.getElementById("echarts"));

那么我们就只要用vue的方式获取到这个节点信息即可,因此可以使用vue中的ref属性来实现。

<divid="echarts"ref="myEcharts"style="width:600px;height:600px"></div>console.log(this.$refs.myEcharts);

我们输出来看一下好吧

和我们之前获取到的是一模一样的哈。

为了更符合Vue中的方式,我们再将这个案例改的更加灵活些:

<template><divref="myEcharts"style="width:600px;height:600px"></div></template><script>import*asechartsfrom'echarts'exportdefault{data(){return{myEcharts:null,option:{title:{text:'普通图表'},tooltip:{},xAxis:{data:["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]},yAxis:{},series:[{name:'销量',type:'bar',data:[5,20,36,10,10,20]}]}}},methods:{initChart(){this.myEcharts=echarts.init(this.$refs.myEcharts);this.myEcharts.setOption(this.option);}},mounted(){this.initChart()}}</script>

这样子才像vue中的写法哈。

2)优化思路

1、如果我们在项目中要用到多种样式的图,那么直接引入也不是不可以的,但是如果仅仅只是使用了折线图或者柱状图这种,那么还是建议大家采用按需引入的方式,那样项目打包体积会更小一点。

官方文档介绍的按需引入

2、另外就是我们可以将echarts封装成组件,这样是最佳的方式吧,将一切都动态化。

个人小小见解,仅考虑优化使用方式,并非是性能上的。如有不足,请及时指出,非常感谢。

这是最简单的柱状图哈,知道大家的需求都是不一样的,下面讲讲该如何学习。

多种多样的图表

在官方文档中,有非常非常多的案例,就算我们什么都不会,cv大法一出,也是可以轻松用起来的哈。

官方示例

并且点进每个图表都是有核心代码的。

所谓的核心代码就是option中的各种配置项。关于每一项配置项官方也给了详细介绍。

数据的那一栏就是data,其他的都是配置项,不过如何渲染还是看大伙们的业务是啥。

点顶部菜单中的文档那一栏,就有一个配置项手册

最常用的几个配置项应该下图中这个了吧,俗称的九大配置项。

如果想要快速理解的话,建议直接点击一个复杂点的官方示例图中,然后拿着配置手册查一查,理解很快的,我认为这种方式应该是最简单的啦吧。

授人以鱼,不如授之以渔

因为不同的业务,可能会产生不一样的需求,所以更多的我们是需要学会如何去学习。

用Echarts可以画那么多种图,我不可能每个都作出一个小Demo给大家,而且大家的数据都不一样,也就抄不了作业吗,所以我们干脆聊聊如何去学会玩这种玩意。

看官方文档在我认为永远是了解它的最快方式。(也许大家会说为啥不是看各种博客,或者直接百度、Google)

原因有以下两点:

版本原因,你搜索到的博客使用的不一定是最新的版本,技术的迭代在现在真的是非常快的。

其次博客内容真的很少有像官方文档那种写的十分完备的,另外在写的过程中,大多数作者(包括我自己)更多的是会贴出自己认为十分核心的东西,对于一些非常细的东西,十分有可能会被忽略掉。

动手尝试

看完文档,不应该立即应用到现用的项目,最佳的方式应该是写上个demo,看看效果如何(个人想法)

纸上得来终觉浅,绝知此事要躬行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
y53s手机参数及价格 vivoy53s5g手机参数 五粮液五粮印象精制52度浓香型白酒500ml 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-详细介绍 五粮液 五粮印象 精制 52度 浓香型白酒 500ml-购买最佳价格 五粮液 五粮印象 精制 52度 浓香型白酒 整箱装-详细介绍 五粮液五粮印象珍品-适用对象 白酒推荐-五粮液五粮印象珍品52%vol浓香型白酒500ml单瓶装 五粮液五粮印象精制52度浓香型白酒-适用对象 星座血型生肖分析摩羯座属蛇A型 早孕试纸弱阳到强阳需要几天 试纸弱阳多久转强阳 ...倾情传授足彩盈利的“倚天剑”——欧洲赔率 足球欧盘分析系统? 2021元旦感恩祝福语给老师 离婚上诉状是否需要提交书面的? 企标和国标哪个标准高 怎样更改拼多多上的默认收货地址呢? 电动车电池(刚用了一年的)冲三四个小时就满了但一用就少一个� “伊朗门事件”是怎么回事? 有没有什么经典的历史战争或者电影(描述古代故事)能够当作情节来用来... P82新电池怎么冲3.4个小时就满了 罗宾汉幕后花絮 介绍一点好看的欧洲古代电影?类似于三个会枪手 波斯王子时之刃 亚瑟王... 美国和伊朗曾亲如盟友,为何如今成了死敌? 求类似罗宾汉那样的欧洲电影 谁能推荐一部类似罗宾汉的电影 只限1部 300勇士不要了 罗宾汉历险记同名电影 multisim中热敏电阻 购买税控系统取得的是普通发票能全额抵扣吗 杭州钱江路属于哪个区 男生补锌有什么好处 补锌有好处?锌元素对人体的6大功效,不可不知! 9553722是什么意思? 广州722是什么意思? ps如何把人脸左右对称ps左右脸对称调整 3D组选3 当期号码是427 我的是722 这算中老吗 我是新手跪求答案_百度... 旺婚姻旺夫的手机号码数字好运的手机数字号码合集 梦到男朋友变心了预示什么意思 三个月宝宝感冒咳嗽怎么办 转变思维能否使人成功?? 定势效应的生活例子 与、鸟有关的成语 5个含有"鸟"的成语 信用卡不刷还需要还款吗 信用卡没有消费要还款吗 《原神》无相之水隐藏战斗成就有哪些 无相之水隐藏成就攻略汇总_百度... 原神神里绫人怎么培养原神神里绫人如何培养 原神无相之水的名字是什么原神无相之水的名字 原神无相之水入口在哪-无相之水位置介绍