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