在vue中如何使用echarts

作者&投稿:紫莫 (若有异议请与网页底部的电邮联系)
~
本篇文章主要介绍了在vue中通过axios异步使用echarts的方法,现在分享给大家,也给大家做个参考。
现实的工作中, 数据不可能是像之前的demo演示的那样把数据写死的. 所有的数据都应该通过发送请求进行获取, 所以, 这篇文章, 我将在Vue项目中使用Echarts: 在Vue中引入Echarts中的数据提取出来, 放入到static/data.json文件中,请求该文件获取数据。
一、 实现异步加载数据
(一)引入vue-resource
通过npm下载axios
//命令行中输入
npm install axios --save在main.js中引入axios并注册
// main.js
import http from './http'
Vue.prototype.$http = http //挂载到原型上(二)设置data.json
将该柱状图的没有数据的option抽取到data.json中, 代码如下:

{
"title": { "text": "简单饼状图" },
"tooltip": {},
"xAxis": {
"data": ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"],
"name": "产品"
},
"yAxis": {},
"series": [{
"name": "销量",
"type": "bar",
"data": [5, 20, 36, 10, 10, 20],
"itemStyle": {
"normal": {
"color": "hotpink"
}
}
}]
}(三)在async-bar-chart.vue中请求数据
从aysnc-barChart-option.js中引入option
在methods中添加drawBarChart()方法
在mounted()钩子函数中调用drawBarChart()
代码如下:
<template>
<p id="myChart" :style="{width: '800px', height: '400px'}"></p>
</template>
<script>
export default {
name: 'echarts',
data() {
return {
msg: 'Welcome to Your Vue.js App',
goods: {}
}
},
mounted() {
this.drawLine();
},
created() {
this.$http.get('./static/dat.json').then(res => {
const data = res.data;
this.goods = data
console.log(this.goods);
console.log(Array.from(this.goods.xAxis.data));
})
},
methods: {
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById('myChart'))
// 绘制图表
myChart.setOption({
title: {}, //{text: '异步数据加载示例'},
tooltip: {},
xAxis: {
data: [] //["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [] //[5, 20, 36, 10, 10, 20]
}]
});
this.$http.get("./static/dat.json") .then((res) => {
const data = res.data;
const list = data.series.map(good=>{
let list = good.data;
return [...list]
})
console.log(list);
console.log(Array.from(...list));
myChart.setOption({
title: data.title,
xAxis: [{
data: data.xAxis.data
}],
series: [{
name: '销量',
type: 'bar',
data: Array.from(...list) //[5, 20, 36, 10, 10, 20]
}]
});
})
}
}
}
</script>
二. 添加加载动画
如果数据加载时间较长,一个空的坐标轴放在画布上也会让用户觉得是不是产生 bug 了,因此需要一个 loading 的动画来提示用户数据正在加载。
ECharts 默认有提供了一个简单的加载动画。只需要调用 showLoading 方法显示。数据加载完成后再调用 hideLoading 方法隐藏加载动画。
在drawLine()方法中添加showLoading()和hideLoading(), 代码如下:

methods: {
drawLine() {
// 基于准备好的dom,初始化echarts实例
let myChart = this.$echarts.init(document.getElementById('myChart'))
// 绘制图表
myChart.setOption({
title: {}, //{text: '异步数据加载示例'},
tooltip: {},
xAxis: {
data: [] //["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [] //[5, 20, 36, 10, 10, 20]
}]
});
//显示加载动画
myChart.showLoading();
this.$http.get("./static/dat.json").then((res) => {
setTimeout(() => { //未来让加载动画效果明显,这里加入了setTimeout,实现3s延时
const data = res.data;
const list = data.series.map(good => {
let list = good.data;
return [...list]
})
console.log(list);
console.log(Array.from(...list));
myChart.hideLoading(); //隐藏加载动画
myChart.setOption({
title: data.title,
xAxis: [{
data: data.xAxis.data
}],
series: [{
name: '销量',
type: 'bar',
data: Array.from(...list) //[5, 20, 36, 10, 10, 20]
}]
});
}, 3000)
})
}
}
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
React-native桥接Android如何实现,具体步骤又是什么?
在vue中如何开发自定义指令directive
移动web开发中有关touch事件(详细教程)
详细解读layui父子窗口如何传递参数
在微信小程序中如何实现image组件图片自适应显示


在vue中如何使用echarts
一、 实现异步加载数据(一)引入vue-resource通过npm下载axios\/\/命令行中输入npm install axios --save在main.js中引入axios并注册\/\/ main.jsimport http from '.\/http'Vue.prototype.$http = http \/\/挂载到原型上(二)设置data.json将该柱状图的没有数据的option抽取到data.json中, 代码如下: { "...

在vue项目中使用echarts制作3d柱状图
1、第一步当然还是进入你所在项目的文件夹。2、第二步使用npm安装你所需要用到的组件,》使用以下命令安装echarts组件 npm install echarts 》安装好echarts后,还需要安装echarts3d图形所需的组件,echarts-gl。使用以下命令安装即可。假设你不需要制作3D的图表,则不需要安装。npm install echarts-gl...

在vue 中使用百度echarts
这样每次都要获取图表dom元素 然后通过setOption渲染数据,最后在mounted中初始化。很麻烦。vue-echarts 是ECharts 的 Vue.js 组件,基于 ECharts v4.1.0 + 开发,依赖 Vue.js v2.2.6 +,意思就是可以直接把echarts实例当中vue中的组件来使用,不用每次都获取dom、挂在dom,轻松使用ec...

vue.js如何将echarts封装为组件一键使用详解
为了图方便于是对ECharts进行了一层封装控件演示控件使用概要 基于echarts的二次封装 由数据驱动 控件源码见src\/components\/charts文档props 属性 说明 类型 _id 图表唯一标识,当id重复将会报错 String _titleText 图表标题 String _xText x轴描述 String _yText y轴描述 String _cha...

2021-06-06在vue中使用 echarts3d地图
vue中使用 echarts地图 main.js中 package.json 使用版本 在vue文件中使用 3d地图示例 中国地图json数据 import '@\/components\/china'var myChart = this. echarts.registerMap("china", china);\/\/china为上图中的json数据 const myChart = this.$echarts.init(document.getElementById('main'...

在Vue中如何使用elementUI实现自定义主题方法
使用vue开发项目,用到elementUI,根据官网的写法,我们可以自定义主题来适应我们的项目要求,下面来介绍一下两种方法实现的具体步骤,(可以参考官方文档自定义主题官方文档),先说项目中没有使用scss编写,用主题工具的方法(使用的较多)第一种方法:使用命令行主题工具使用vue-cli安装完项目并引入element-...

vue3 项目里面使用 echarts 图表,数据改变后并且赋值成功视图却不更新是...
在 Vue3 项目中使用 ECharts 图表,数据改变后并且赋值成功视图却不更新的原因可能是因为 ECharts 的实例没有被正确地销毁和重新创建。你可以尝试在数据变化时销毁旧的 ECharts 实例,然后重新创建一个新的实例。具体实现可以参考这篇文章。

在vue中使用echarts怎么让饼图自动轮播?
配置项里的data,好像有个属性可以控制是否被选中,试试动态切换这个属性

vue中用echarts 动态刷新数据没变化解决
export default { \/\/ 父组件传递过来的数据 (两种方式声明:1.数组 2.对象)  props: { titleText: { type:String,      default: () => { return '2019 前三季度达标率统计'      } }, \/\/ 图表名称     isPercentage: { ...

vue中Echarts封装
首先安装echarts  npm  echarts --save 然后新建一个echarts文件夹,新建index.vue文件:```<template>    <\/template> let Echarts = require('echarts\/lib\/echarts')\/\/ 按需引入需要的组件模块 require('echarts\/lib\/chart\/line')require('...

田东县19687758767: vue 中怎么引入echarts的地图 -
尹杰龙胆: option在你手里,实例也有getOption方法

田东县19687758767: vue怎样定义echarts的点击事件 -
尹杰龙胆: 不是很理解你的需求,可以明确的是echarts可以添加点击事件:chart.on('click',function(params){//dosomething});FYI.

田东县19687758767: vue - echats -
尹杰龙胆: 没用过vue-echarts.如果是echarts的话有专门的销毁实例的方法(dispose()),可以再路由跳转前(router.beforeeach内),尝试销毁echarts对象.ECMAScript有无用存储单元收集程序,意味着不必专门销毁对象来释放内存.当再没有对对...

田东县19687758767: Vue create方法调用echart的setOption,为什么echarts不会显示 -
尹杰龙胆: 需要在mounted中,因为需要dom渲染完毕才可以找到元素,所以还需要加上$nextTick(),在这个里面调用函数

田东县19687758767: 如何使用和设置echarts主题 -
尹杰龙胆: 1、下载好开发包后就可以开始了,第一步引入开发包,和需要的主题文件(可定义自己的主体文件),并定义好页面布局.2.0以后上的版本,需要把开发包放到body下,否则ie低版本会出现属性未找到的错误,导致图标初始化失败.2、第二...

田东县19687758767: 如何使用echarts绘制树形图表 -
尹杰龙胆: 在setoption之后添加这段代码:window.onresize = myChart.resize;

田东县19687758767: vue main.js 加入方法怎么条用法 -
尹杰龙胆: let echarts = require('echarts/lib/echarts'); // 引入折现图 require('echarts/lib/chart/line'); // 引入提示框和标题组件 require('echarts/lib/component/tooltip'); require('echarts/lib/component/title')

田东县19687758767: github echarts 怎么使用 -
尹杰龙胆: echarts的使用步骤如下:1. 去官网下载echarts的压缩包.2. 引入到项目中.3. 页面引入echarts.js.举例:在页面生成一个条形图.首先,使用require命令导入echarts,require.config({ paths : { echarts : 'resources/js/lib/echarts' } }); 编写bar的代...

田东县19687758767: echarts主题在线构建工具怎么使用 -
尹杰龙胆: 然后,就是去引用啦.在自己的js中,myChart = echarts.init(document.getElementById('main'),'macarons');--------------------------------------------------- 分割线 -------------------------------------------------------------------------- P.S.注意init的第二个参数不是主题js的文件名!是文件里头,你所注册的主题名!echarts.registerTheme('macarons', { "color": [ .... ],....});

田东县19687758767: 怎么快速使用ECharts绘制可视化图表 -
尹杰龙胆: ECharts ECharts提供的用法中,require是作为模块化加载的入口,如果你使用类似于RequireJS、SeaJS这样的模块化加载JS库的话,那么,就可以使用require()初始化ECharts. 你贴出来的链接这篇文章,正式介绍如何使用模块化

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网