1.echarts数据变了但是视图不重新渲染

新建Chart.vue文件

<template>

 <p :id="id" :style="style"></p>

</template>

<script>

export default {

 name: "Chart",

 data() {

  return {

   //echarts实例

   chart: ""

  };

 },

 props: {

  //父组件需要传递的参数:id,width,height,option

  id: {

   type: String

  },

  width: {

   type: String,

   default: "100%"

  },

  height: {

   type: String,

   default: "300px"

  },

  option: {

   type: Object,

   //Object类型的prop值一定要用函数return出来,不然会报错。原理和data是一样的,

   //使用闭包保证一个vue实例拥有自己的一份props

   default() {

    return {

     title: {

      text: "vue-Echarts"

     },

     legend: {

      data: ["销量"]

     },

     xAxis: {

      data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子","tuoxie"]

     },

     series: [

      {

       name: "销量",

       type: "line",

       data: [5, 20, 36, 10, 10, 70]

      }

     ]

    };

   }

  }

 },

 computed: {

  style() {

   return {

    height: this.height,

    width: this.width

   };

  }

 },

 mounted() {

  this.init();

 },

 methods: {

  init() {

   this.chart = this.$echarts.init(document.getElementById(this.id));

   this.chart.setOption(this.option);

  }

 }

};

</script>

新建App.vue文件,chart在App.vue中简单渲染出来

<template>

 <p id="app">

  <Chart id="test"/>

 </p>

</template>

<script>

import Chart from "./components/Chart";

export default {

 name: "App",

 data() {},

 components: {

  Chart

 }

}

</script>

支持数据自动刷新

//在Chart.vue中加入watch

 watch: {

  //观察option的变化

  option: {

   handler(newVal, oldVal) {

    if (this.chart) {

     if (newVal) {

      this.chart.setOption(newVal);

     } else {

      this.chart.setOption(oldVal);

     }

    } else {

      this.init();

    }

   },

   deep: true //对象内部属性的监听,关键。

  }

 }

2.重新渲染了前后数据会重叠渲染的问题

chart.setOption(option, notMerge, lazyUpdate);将notMerge设置为true就可以echarts画布删除历史数据重新渲染数据

notMerge是可选项,是否不跟之前设置的option进行合并,默认为false,即合并。

最新文章

  1. 浅谈iOS触摸事件理解
  2. assign、copy 、retain等关键字的含义
  3. 作用域闭包、预解释和this关键字综合题目
  4. Linux问题定位工具大放送
  5. php文件读写锁
  6. 安装linux操作系统--浪潮服务器
  7. [GIT] warning: LF will be replaced by CRLF问题解决方法
  8. 使用PHP把下划线分隔命名的字符串 转换成驼峰式命名方式 , 把下划线后面的第一个字母变成大写
  9. Error establishing socket解决办法
  10. Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息——Jason niu
  11. solr之环境配置三
  12. Vue.js如何在一个页面调用另一个同级页面的方法
  13. topological sort
  14. ubuntu新建组合用户命令不管用
  15. Exchange 2010 OWA部分用户不能访问
  16. php用户名密码
  17. .NET笔试题集(五)
  18. Qt连接数据库的两种方法
  19. 在vue-cli生成的项目中使用karma+chrome进行单元测试
  20. Sql Server 统计当天数据

热门文章

  1. maven学习整理-基础知识
  2. 介绍Win7 win8 上Java环境的配置
  3. MarkDown 快速开始 上手
  4. LeetCode刷题笔记-DP算法-取数问题
  5. 使用SpringMVC&lt;mvc:view-controller/&gt;标签时踩的一个坑
  6. python学习9—文件基本操作与高级操作
  7. pcA降维 SVD
  8. 数据可视化echart
  9. webpack 配置之入门一
  10. 2018-2-13-win10-edge扩展