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

react,使用echarts过程

第一步:安装echarts

npm install echarts

第二步:创造echarts组件:

代码:

import React, { useEffect, useRef } from 'react'
import * as echarts from 'echarts';function Myecharts(props) {// 使用useRef钩子来存储图表容器的DOM元素引用。let box = useRef()// 在组件挂载后和props.option变化时执行的副作用函数。useEffect(() => {console.log(box.current)// 初始化Echarts实例。var myChart = echarts.init(box.current);console.log(props.option)// 根据props.option的存在与否,设置图表的配置选项。if(props.option!=null){myChart.setOption(props.option)}else{console.log("没有传过来")}}, [props.option]) // 仅当props.option变化时,重新执行副作用函数。// 设置图表容器的样式。不然撑不开const stylestr = {width: '100%',height:'100%'}// 返回图表的容器元素。return (<div ref={box} id='main' style={stylestr}></div>)
}export default Myecharts

第三步:在页面中使用当前组件,代码如下

/*** 首页组件。* * 该组件渲染一个包含图表的页面。图表使用Echarts库绘制,展示了不同渠道的访问量。* 它通过定义并使用Echarts的配置选项来定制图表的外观和行为。*/
import Myecharts from '../compoents/Myecharts'function About() {// 定义Echarts图表的配置选项let option = {tooltip: {trigger: 'axis'},legend: {icon: "circle",data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']},grid: {left: '3%',right: '4%',bottom: '3%',containLabel: true},xAxis: {type: 'category',boundaryGap: false,data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']},yAxis: {type: 'value'},series: [{name: 'Email',type: 'line',stack: 'Total',showSymbol: false,smooth: true,data: [120, 132, 101, 134, 90, 230, 210]},{name: 'Union Ads',type: 'line',stack: 'Total',showSymbol: false,smooth: true,data: [220, 182, 191, 234, 290, 330, 310]},{name: 'Video Ads',type: 'line',smooth: true,showSymbol: false,stack: 'Total',data: [150, 232, 201, 154, 190, 330, 410]},{name: 'Direct',type: 'line',smooth: true,showSymbol: false,stack: 'Total',data: [320, 332, 301, 334, 390, 330, 320]},{name: 'Search Engine',type: 'line',smooth: true,showSymbol: false,stack: 'Total',data: [820, 932, 901, 934, 1290, 1330, 1320]}]};//注意要有样式,不然撑不开const stystr = {width: '500px',height: '500px'}// 返回图表容器组件return (<div style={stystr}><Myecharts option={option}></Myecharts></div>)
}export default About

http://www.xdnf.cn/news/999973.html

相关文章:

  • C/C++内存分布和管理
  • 1.11 HTTP 文件上传的核心协议
  • 小米CR660X/TR60X系列,获取SSH权限后刷openwrt系统
  • Linux中source和bash的区别
  • 树莓派5-ubuntu 24.04 安装 ros环境
  • linux 配置mvn
  • 创始人 IP 打造:心理学与家庭教育赛道知识变现新路径
  • LeetCode 热题 100 链表篇|Java 通关全攻略:从基础到进阶的 20 道核心题解(附完整思路与代码)
  • ARM SMMUv3命令和事件队列分析(四)
  • LeetCode 3423. Maximum Difference Between Adjacent Elements in a Circular Array
  • Haption遥操作机械臂解决方案通过高精度力反馈技术实现人机协同操作
  • elastalert实现飞书机器人告警-docker
  • Python爬虫实战:研究Crossbar相关技术
  • C/C++ 面试复习笔记(6)
  • 【测试开发】函数进阶-纯函数
  • 关于transceiver复位测试
  • 亚马逊关闭Posts:站内社交梦碎,卖家流量策略急待重构
  • Babylon.js场景加载器(Scene Loader)使用指南
  • 怎么把Dify部署在Windows系统上?
  • git merge合并分支push报错:Your branch is ahead of ‘xxx‘ by xx commits.
  • AI换衣技术实现原理浅析:基于图像合成的虚拟试衣实践
  • Python 爬虫入门 Day 1 - 网络请求与网页结构基础
  • WSGI(自用)
  • 解决npm install 一直卡着不动,npm install --verbose
  • TickIt:基于 LLM 的自动化 Oncall 升级
  • 相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解
  • 如何快速删除谷歌浏览器在mac启动台生成的网页图标
  • 42 C 语言随机数生成:rand() 与 srand() 深度解析、生成指定范围随机数、应用实战
  • xilinx的gtx使用qpll,是否可以实现4lane运行不同的线速率
  • 【力扣 简单 C】21. 合并两个有序链表