1. 数据问题,不像官方实例所提供的数据直接写在options对应的数据源里,开发中应当是后端接口请求过来的数据,一般来说,会将echarts图标抽成组件的形式,需要的数据源通过父组件传给子组件,但是遇到的问题就是,图表会木有数据的问题(图表会展示出来,但是没有数据,尴尬),这是因为echats实例在dom渲染前没有拿到数据,在子组件中使用watch侦听父组件传过来的数据即可,如果有再挂载dom,这样就做到了页面没数据的问题

2. 图表响应式的问题,因为echarts图表是canvas画布生成的,所以说在创建都没元素的时候就应当指定宽高,但是直接将style属性写死宽高做不到图表的响应式,这时候通过父组件获取到图表的父级宽高传给子组件绑定,然后使用window.onresize() 方法的回调设置响应式图表

父组件:

 1 <template>
2 <div class="home" ref="home">
3 <echarts :widthheight="style" :echartsData="echartsData"></echarts>
4 </div>
5 </template>
6
7 <script>
8 import echarts from "../components/echarts";
9 export default {
10 components: {
11 echarts
12 },
13 data() {
14 return {
15 style: {
16 width: "",
17 height: "250px"
18 },
19 echartsData: {} //图的数据
20 };
21 },
22 created() {
23 this.echartsData = {
24 X: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
25 Y: [820, 932, 901, 934, 1290, 1330, 1320]
26 };
27 },
28 mounted() {
29 this.style.width = this.$refs["home"].offsetWidth; //获取父元素的宽度
30 }
31 };
32 </script>
33
34 <style>
35 .home {
36 margin: 50px;
37 border: 1px solid grey;
38 height: 300px;
39 }
40 </style>

子组件:

<template>
<div ref="var_echarts" :style="widthheight"></div>
</template> <script>
export default {
props: ["widthheight", "echartsData"],
data() {
return {
myChart: {} //用来保存echarts图这个实例
};
},
watch: {
echartsData: function(newval, oldval) {
if(newval) {
this.drawBar();
}
}
}, mounted() {
this.$nextTick(() => {
this.drawBar();
});
window.onresize = () => {
this.myChart.resize(); //跟对屏幕的宽度变化而变化
};
},
methods: {
drawBar() {
this.myChart = this.$echarts.init(this.$refs.var_echarts);
this.myChart.setOption({
xAxis: {
type: "category",
data: this.echartsData.X //
},
yAxis: {
type: "value"
},
series: [
{
data: this.echartsData.Y, //
type: "line"
}
]
});
}
}
};
</script>

Vue中使用Echarts 脱坑的更多相关文章

  1. 在vue中使用echarts图表

    在vue中使用echarts图表   转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9815290.html 安装vue依赖 使用npm npm instal ...

  2. 在vue中调用echarts中的地图散点图~

    首先!当然是在vue中引入echarts! 命令行  npm install echarts --save 在main.js文件中里引入        import echarts from 'ech ...

  3. Vue中使用ECharts画散点图加均值线与阴影区域

    [本文出自天外归云的博客园] 需求 1. Vue中使用ECharts画散点图 2. 在图中加入加均值线 3. 在图中标注出阴影区域 实现 实现这个需求,要明确两点: 1. 知道如何在vue中使用ech ...

  4. 记录vue中一些有意思的坑

    记录vue中一些有意思的坑 'message' handler took 401ms 在出现这个之前,我一直纠结于 是如何使用vue-router或者不使用它,通过类似的v-if来实现.结果却出现这个 ...

  5. 记录下vue 中引用echarts 出现 "TypeError: Cannot read property 'getAttribute' of undefined"问题

    今天做项目,用echarts展示数据 ,自己测试 先测试 了下.写的代码html: <div ref="myChart" style="height:300px;w ...

  6. vue中使用echarts(vue+vue-cli+axios+jsonp+echarts)

    一.安装echarts: cnpm i echarts -D 二.在vue-cli的main.js文件中引用echarts: import charts from 'echarts' Vue.prot ...

  7. VUE中集成echarts时 getAttribute of null错误

    错误 错误场景一: 错误提示: 在运行Vue项目时出现了上述错误,出现该错误的原因是Echarts的图形容器还未生成就对其进行了初始化所造成的,代码如下: // 基于准备好的dom,初始化echart ...

  8. vue中使用echarts的两种方法

    在vue中使用echarts有两种方法一.第一种方法1.通过npm获取echarts npm install echarts --save 2.在vue项目中引入echarts 在 main.js 中 ...

  9. 在vue中使用Echarts画曲线图(异步加载数据)

    现实的工作中, 数据不可能写死的,所有的数据都应该通过发送请求进行获取. 所以本项目的需求是请求服务器获得二维数组,并生成曲线图.曲线图的横纵坐标均从获得的数据中取得. Echarts官方文档: ht ...

  10. vue中添加echarts

    方法一:全局引入echarts 步骤: 1.全局安装 echarts依赖.        cnpm install echarts -- save 2.引入echarts模块,在Vue项目的main. ...

随机推荐

  1. Linux命令之定时调度-crontab

    以上cron命令格式为:* * * * * [root run-parts] command 前面五个*号代表时间,用数字,数字的取值范围和含义如下: 第一个*:分钟 (0-59)[整数] 第二个*: ...

  2. ORACLE触发器:插入数据时,对其中的一个字段进行默认赋值

    Create trigger t_datebefore insertbegin:new.sj = to_char(sysdate,'yyyy-MM-dd HH:mm:ss')end

  3. jmeter工具2个打开方法+配置黑窗口启动jmeter工具。

    实现从cmd黑窗口,输入jmeter,即可弹出jmeter工具界面.方法一:直接去安装在的目录,找jmeter_5.4.bat文件,双击即可打开工具. 方法二: 在环境变量中,配置JMETER_HOM ...

  4. JSTl_概述和JSTL_常用便签if

    概念: JavaServer Pages Tag Library JSP 标准标签片*是由 Apache 组织提俱的开源的免费的 jsp 标签 <标签> 作用:用于简化和替换 jsp 页面 ...

  5. 用友CELL

    Cell1.login('晋业软件','1101010373','1300-0616-0122-3005'); 下载地址: https://download.csdn.net/download/wil ...

  6. 随笔:for in 和 for of的区别

    百度前端面试题:for in 和 for of的区别详解以及为for in的输出顺序 - 知乎 以该页面为例,我稍微总结一点东西: 在这⾥我们把对象中的数字属性称为 「排序属性」,在V8中被称为 el ...

  7. webgl 系列 —— 渐变三角形

    其他章节请看: webgl 系列 渐变三角形 本文通过一个渐变三角形的示例逐步分析:varying变量.合并缓冲区.图形装配.光栅化.varying 内插 绘制三个点v1 需求:绘制三个相同颜色的点, ...

  8. python创建线程传参误区记录

    创建线程可以使用threading模块中的Thread子类: 其中Thread子类允许的参数如下: (self, group=None, target=None, name=None, args=() ...

  9. Ocelot使用与设置路由Routing

    一.安装Ocelot 在程序包管理器控制台输入以下命令安装Ocelot Install-Package Ocelot 二.新建两个项目 我们新建两个.Net Core WebAPI项目如下:   直接 ...

  10. singleflight 使用记录以及源码阅读

    singleflight 使用方法以及源码阅读 1.简介 安装方式: go get -u golang.org/x/sync/singleflight singleflight 是Go官方扩展同步包的 ...