echarts 自带的自适应方法  resize()

具体用法:

let xxEcharts = this.$echarts.init(document.getElementById('xxx'))
xxEcharts.setOption(xxxx)  // 参数是 echarts 的option对象
window.onresize = xxEcharts.resize
 
但是,问题来了,同一个页面使用多个echarts 的时候,window.onresize = xxEcharts.resize  只对最后一个echarts有效果
这时候换种写法
window.onresize = function(){
  xxBarChart.resize()
  xxxBarChart.resize()
  xxChart.resize()
  xxxChart.resize()
}
好了,现在所有的 echarts都可以自适应了,
然而,还没完,还是会出现各种问题,导致自适应出问题,现在我们想想,如何手动触发 resize
首先,肯定要把 echarts变量全局化。
我现在 vue的data中设置 xxEcharts : this.$echarts.init(document.getElementById('xxx'))
然而报错,没办法,
再试试在计算函数中声明   
computed:{
  xxBarChart(){
    return this.$echarts.init(document.getElementById('myChart_ln'))
  }
}
再试试,竟然可以了,虽然不知道原理,但是现在我们可以手动调起  this.xxBarChart.resize()了
/////////////////////////////////////////////////////////////////////  我是华丽丽的分割线  ////////////////////////////////////////////////////////////////////////////////////////////////////
次日新加内容:
不知道昨天为啥可以了,今天在使用的时候,华丽丽的报错了,错误很简单,  
在使用 window.onresize = function(){ this.xxcharts.resize() }
的时候,this指向了event对象或者window对象,而不是我们的 vue对象
 
此时,要改变当前方法的作用域,我第一想到的是call和bind,未试
 
我使用了另外一种方法,我在 data 中定义一个属性,叫windowSize,在 methods 中定义了一个方法 windowSizeChange,在windowSizeChange中 ,设置 windowSize 的值,然后在 watch 中 监测 windowSize 并 执行 this.xxcharts.resize()的操作。经过测试,可以解决问题,
 
然而以上仍然无法解决,echarts在子组件中且在同一个页面被调用多次的时候,无法自适应的问题
解决办法大概是,使用 全局状态监测,比如 使用 vuex,,在 app.vue中 使用 window.resize ,整个项目只使用一次,做监测,大致是这个思路。
 
 

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 中引用echarts 出现 "TypeError: Cannot read property 'getAttribute' of undefined"问题

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

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

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

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

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

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

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

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

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

  9. vue中添加echarts

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

随机推荐

  1. 深入JAVA注解-Annotation(学习过程)

    JAVA注解-Annotation学习 本文目的:项目开发过程中遇到自定义注解,想要弄清楚其原理,但是自己的基础知识不足以支撑自己去探索此问题,所以先记录问题,然后补充基础知识,然后解决其问题.记录此 ...

  2. Vue系列(六)之常用指令v-model

    v-model 基本使用 修饰符 .trim .number .lazy 前面讲到的插值,其实都是单向绑定,数据变-->视图变.有些元素可以与用户交互,比如input,select等,那么我们希 ...

  3. December 21st, Week 51st Saturday, 2019

    May the odds be ever in your favor. 愿好运永远眷顾你. From The Hunger Games. May we all have good luck, and ...

  4. github日常的基本命令

    git 常用命令 git clone 仓库地址 -从远端克隆项目 git pull -从远端拉取代码 git pull -p -从远端拉取代码和分支 提交代码流程: git add xxx -添加到暂 ...

  5. UIView动画的使用

    下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...

  6. 如何优雅的使用python中的代码注释

    在编写代码时,确保您的代码易于被其他人理解时很重要的,给变量,函数起合适的名字以及合理的组织代码都是很好的方法. 使用代码注释时增加代码可读性的另一种方便简单且重要的方法! 1.为什么代码注释如此重要 ...

  7. git合并分支到主干

    1.从当前分支切换主干 git checkout master 2.更新主干内容到本地 git pull 4.提交分支,并将分支merge到主干 git merge dev 5: i键后输入备注  输 ...

  8. Codeforces #617 (Div. 3)B. Food Buying

    Mishka wants to buy some food in the nearby shop. Initially, he has ss burles on his card. Mishka ca ...

  9. tensorflow版helloworld---拟合线性函数的k和b(02-4)

    给不明白深度学习能干什么的同学,感受下深度学习的power import tensorflow as tf import numpy as np #使用numpy生成100个随机点 x_data=np ...

  10. c数据结构链式存储

    #include "stdafx.h" #include "stdio.h" #include "string.h" #include &q ...