- 38
- 0
主要问题就是标题一样。
这是我highchats的封装,test 属性是我用来测试,监听的。
<template>
<div :class="className" :style="{height:height,width:width}"></div>
</template>
<script>
import Highcharts from "highcharts/highstock";
import HighchartsMore from "highcharts/highcharts-more";
import HighchartsDrilldown from "highcharts/modules/drilldown";
import Highcharts3D from "highcharts/highcharts-3d";
import { debounce } from "@/utils";
HighchartsMore(Highcharts);
HighchartsDrilldown(Highcharts);
Highcharts3D(Highcharts);
export default {
props: {
className: {
type: String,
default: "chart"
},
width: {
type: String,
default: "100%"
},
height: {
type: String,
default: "350px"
},
test: {
type: String,
default: ''
},
autoResize: {
type: Boolean,
default: true
},
chartData: {
type: Object
}
},
name: 'highcharts',
data() {
return {
chart: null,
options: Object
};
},
mounted() {
this.initChart();
if (this.autoResize) {
this.__resizeHanlder = debounce(() => {
if (this.chart) {
this.chart.reflow();
}
}, 100);
window.addEventListener("resize", this.__resizeHanlder);
}
// 监听侧边栏的变化
const sidebarElm = document.getElementsByClassName("sidebar-container")[0];
sidebarElm.addEventListener("transitionend", this.__resizeHanlder);
},
beforeDestroy() {
if (!this.chart) {
return;
}
if (this.autoResize) {
window.removeEventListener("resize", this.__resizeHanlder);
}
const sidebarElm = document.getElementsByClassName("sidebar-container")[0];
sidebarElm.removeEventListener("transitionend", this.__resizeHanlder);
this.chart.destroy();
this.chart = null;
},
watch: {
chartData: {
deep: true,
handler(val) {
this.setOptions(val);
console.log(val)
}
},
test:{
handler(val){
console.log(val)
}
}
},
methods: {
setOptions(expectedData) {
this.options = expectedData
},
initChart() {
this.setOptions(this.chartData);
this.chart = new Highcharts.Chart(this.$el, this.options);
}
}
};
</script>
以下是页面调用
<Highchats :chart-data="temp_data.Highchats_linedata"></Highchats>
我吧highchats 的整个配置对象,定义在了父组件的 data 中,第一次页面加载 的时候,能正常渲染。
但是当我通过方法改变 这个配置对象的 data 时,highchats 中监听不到,请各位指点一下。
在网上看了很多答案,都是创建图表后,拿到该图表的实例,然后通过调用highchats的函数进行更新图表,
而没有看到在组件中,通过监听让highchats 自己进行更新的,这样是不可行吗?
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
