当前位置: 首页 > news >正文

工业产品设计作品集关键词搜索引擎优化推广

工业产品设计作品集,关键词搜索引擎优化推广,上海做网站内容检查的公司,西安做seo的公司在前端开发中&#xff0c;数据可视化是展示数据的重要方式之一。ECharts 是一个强大的开源可视化库&#xff0c;能够帮助我们轻松地创建各种图表。本文将介绍如何在 Vue 3 项目中使用 ECharts 封装一个图表组件。 代码 <template><div ref"chartRef" styl…

在前端开发中,数据可视化是展示数据的重要方式之一。ECharts 是一个强大的开源可视化库,能够帮助我们轻松地创建各种图表。本文将介绍如何在 Vue 3 项目中使用 ECharts 封装一个图表组件。

代码

<template><div ref="chartRef" style="height: 100%; width: 100%"></div>
</template><script setup lang="ts">
import * as echarts from "echarts";
import { onMounted, onUnmounted, shallowRef, watch } from "vue";const props = defineProps(["option"]);// 使用 shallowRef 来创建一个对 div 元素的引用
const chartRef = shallowRef(null);let chartInstance: echarts.ECharts | null = null;// 初始化图表,如果图表容器不可用或图表已初始化,则不执行任何操作。
const initChart = () => {if (!chartRef.value) {console.error("图表容器不可用。");return;}if (chartInstance) {// 防止重复初始化return;}try {chartInstance = echarts.init(chartRef.value);chartInstance.setOption(props.option);} catch (error) {console.error("无法加载图标:", error);}
};// 当组件挂载时调用的函数,用于初始化图表并添加窗口大小调整的监听器
onMounted(() => {initChart();const handleResize = () => {if (chartInstance) {chartInstance.resize();}};// 监听窗口大小改变,并重新调整图表大小window.addEventListener("resize", handleResize);// 当组件卸载时调用的函数,用于清理资源onUnmounted(() => {if (chartInstance) {chartInstance.dispose();chartInstance = null;}window.removeEventListener("resize", handleResize);});
});// 监听 props.option 的变化,以更新图表选项
watch(() => props.option,(newOption: echarts.EChartsOption) => {if (chartInstance) {chartInstance.setOption(newOption);}}
);
</script>

说明

容器定义

<template><div ref="chartRef" style="height: 100%; width: 100%"></div>
</template>

这段代码用于创建图表容器,并使用 ref 指令获取该元素的引用。相比于使用 id,ref 更加灵活,避免了 id 重复的问题,且更符合 Vue 的响应式编程风格。

引用实例

const chartRef = shallowRef(null);
let chartInstance: echarts.ECharts | null = null;

使用 shallowRef 创建对 div 元素的引用。shallowRef 和 ref 的区别在于,shallowRef 仅对引用对象的第一层做响应式处理,避免了不必要的性能消耗。本文引用的 DOM 元素不需要深层次的响应式处理,所以选择 shallowRef

初始化

const initChart = () => {if (!chartRef.value) {console.error("图表容器不可用。");return;}if (chartInstance) {// 防止重复初始化return;}try {chartInstance = echarts.init(chartRef.value);chartInstance.setOption(props.option);} catch (error) {console.error("无法加载图标:", error);}
};

通过 echarts.init 初始化图表实例,并设置图表配置。该函数首先检查 chartRef 是否存在,以避免在容器不可用时初始化图表。然后,通过 echarts.init 初始化图表实例,并设置图表配置。

挂载卸载

onMounted(() => {initChart();const handleResize = () => {if (chartInstance) {chartInstance.resize();}};// 监听窗口大小改变,并重新调整图表大小window.addEventListener("resize", handleResize);// 当组件卸载时调用的函数,用于清理资源onUnmounted(() => {if (chartInstance) {chartInstance.dispose();chartInstance = null;}window.removeEventListener("resize", handleResize);});
});

挂载不必解释,卸载是为了及时清理,防止可能的内存泄露问题。

及时更新

watch(() => props.option,(newOption: echarts.EChartsOption) => {if (chartInstance) {chartInstance.setOption(newOption);}}
);

图表是有可能动态变化的,因此要设置一个监听,这样的话,数据就能得到及时的更新。

http://www.yayakq.cn/news/637138/

相关文章:

  • 建设银行甘肃分行网站网站的竞争对手
  • 做网站计入什么科目1688平台
  • ui设计素材网站有哪些seo网站优化推荐
  • wap手机网站开发软件dedecms转wordpress
  • 优秀的集团网站军事网站模板
  • 网站后台登陆地址山东省住房和城乡建设厅二级建造师
  • 榆林网站优化常州专业网站建设推广
  • 幼教资源网网站开发策划书wordpress数据包
  • 网站建好后广告是不是需要外贸公司介绍
  • 如何使用模板做网站关键对话
  • 郑州百姓网征婚江苏seo平台
  • 公司网站建设一条wordpress 编辑器增加按钮
  • dz门户做视频网站龙岗模板网站建设
  • 河南省建设工程造价信息网站工作优化方案怎么写
  • 三合一网站建设是指网页编辑人头
  • 新网站怎么推广企业站系统
  • 网页设计html实验总结站内优化主要从哪些方面进行
  • 兰州市建设局官方网站手机界面设计素材
  • 建设银行的网站查询密码企业网站cms模板
  • 餐厅网站建设方案wordpress图片存放地址
  • 在柬埔寨做网络销售推网站网站空间在那里买
  • 网站建设虚拟服务器磁县网站设计公司
  • 苏州 网站设计uc搜索引擎入口
  • 如何在网站上做标记圈信息网站开发项目具体的流程
  • 哪个平台建网站比较好做别人一摸一样的网站犯法吗
  • 北京住房和建设部网站首页seo建设
  • 广东网站建设怎么选上海网站开发培训
  • 做化妆品等的网站如何在亚马逊开店
  • 留学中介网站建设方案品牌查询官网
  • 源码之家网站排行榜123网