使用Vue3封装一个通用echarts组件详解
实现这个组件需要引入echarts和vue-echarts插件,使用vue-echarts是因为它帮我们封装了一些很常用的功能,比如监听页面resize后重新渲染功能,本次组件只使用到了autoresize配置,其它可以根据官方文档按需选配
https://github.com/ecomfe/vue-echarts
首先引入echarts和vue-echarts插件
npm install echarts vue-echarts -S
组件定义参数如下
import type { ECBasicOption } from 'echarts/types/dist/shared' const props = defineProps({ // echarts options 传参 option: { type: Object as PropType<ECBasicOption>, required: true, }, // 容器宽度 width: { type: String, default: '100%', }, // 容器高度 height: { type: String, default: '400px', }, })
组件代码如下
<script setup lang="ts"> import { PropType, provide } from 'vue' import type { ECBasicOption } from 'echarts/types/dist/shared' import { use } from 'echarts/core' import { CanvasRenderer } from 'echarts/renderers' // 按需引入 import { PieChart, LineChart, FunnelChart, CustomChart } from 'echarts/charts' import { TitleComponent, TooltipComponent, LegendComponent, GridComponent, ToolboxComponent, } from 'echarts/components' import VChart, { THEME_KEY } from 'vue-echarts' use([ CanvasRenderer, PieChart, TitleComponent, TooltipComponent, LegendComponent, GridComponent, LineChart, ToolboxComponent, FunnelChart, CustomChart, ]) // 传入主题 provide(THEME_KEY, 'light') const props = defineProps({ option: { type: Object as PropType<ECBasicOption>, required: true, }, width: { type: String, default: '100%', }, height: { type: String, default: '400px', }, }) </script> <template> <div class="chart-container" :style="{ width, height }"> <VChart class="w-full h-full" :option="props.option" autoresize /> </div> </template>
到此这篇关于使用Vue3封装一个通用echarts组件详解的文章就介绍到这了,更多相关Vue3封装通用echarts组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue项目element UI input框扫码枪扫描过快出现数据丢失问题及解决方案
这篇文章主要介绍了vue项目element UI input框扫码枪扫描过快出现数据丢失问题,输入框要掉两个接口,根据第一个验证接口返回的code,弹不同的框,点击弹框确认再掉第二个接口,需要的朋友可以参考下2022-12-12vscode中vue代码提示与补全没反应解决(vetur问题)
这篇文章主要给大家介绍了关于vscode中vue代码提示与补全没反应解决(vetur问题)的相关资料,文中通过图文将解决的方法介绍的非常详细,需要的朋友可以参考下2023-03-03Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
这篇文章主要介绍了Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例,帮助大家更好的理解和学习vue,感兴趣的朋友可以了解下2020-11-11Vue-cli3 $ is not defined错误问题及解决
这篇文章主要介绍了Vue-cli3 $ is not defined错误问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07Vue使用Clipboard.JS在h5页面中复制内容实例详解
在本篇文章里小编给大家整理了关于Vue使用Clipboard.JS在h5页面中复制内容以及相关知识点内容,需要的朋友们可以学习下。2019-09-09
最新评论