Vue 开发实战实战篇 # 34:如何在组件中使用EChartsAntv等其他第三方库
Posted 凯小默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 开发实战实战篇 # 34:如何在组件中使用EChartsAntv等其他第三方库相关的知识,希望对你有一定的参考价值。
说明
【Vue 开发实战】学习笔记。
效果
这里我们使用 echarts 为例在项目里面添加 echarts 库
安装依赖
npm i echarts resize-detector
Chart.vue
<template>
<div ref="chartDom"></div>
</template>
<script>
import * as echarts from 'echarts';
import debounce from "lodash/debounce";
import addListener, removeListener from "resize-detector";
export default
props:
option:
type: Object,
default: () =>
,
watch:
option(val)
console.log("watch--->", val)
this.chart.setOption(val);
,
created()
this.resize = debounce(this.resize, 300);
,
mounted()
this.renderChart();
addListener(this.$refs.chartDom, this.resize);
,
beforeDestroy()
removeListener(this.$refs.chartDom, this.resize);
this.chart.dispose();
this.chart = null;
,
methods:
resize()
console.log("resize")
,
renderChart()
// 基于准备好的dom,初始化echarts实例
this.chart = echarts.init(this.$refs.chartDom);
// 使用刚指定的配置项和数据显示图表。
this.chart.setOption(this.option);
,
;
</script>
<style></style>
分析页引用 Chart 组件
<template>
<div ref="chartDom"></div>
</template>
<script>
import * as echarts from 'echarts';
import debounce from "lodash/debounce";
import addListener, removeListener from "resize-detector";
export default
props:
option:
type: Object,
default: () =>
,
watch:
option(val)
console.log("watch--->", val)
this.chart.setOption(val);
,
created()
this.resize = debounce(this.resize, 300);
,
mounted()
this.renderChart();
addListener(this.$refs.chartDom, this.resize);
,
beforeDestroy()
removeListener(this.$refs.chartDom, this.resize);
this.chart.dispose();
this.chart = null;
,
methods:
resize()
console.log("resize")
,
renderChart()
// 基于准备好的dom,初始化echarts实例
this.chart = echarts.init(this.$refs.chartDom);
// 使用刚指定的配置项和数据显示图表。
this.chart.setOption(this.option);
,
;
</script>
<style></style>
参考资料
以上是关于Vue 开发实战实战篇 # 34:如何在组件中使用EChartsAntv等其他第三方库的主要内容,如果未能解决你的问题,请参考以下文章
Vue 开发实战实战篇 # 45:如何构建可交互的组件文档让代码高亮的显示在页面