日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

echarts setoption方法_在Vue和React中使用ECharts的多种方法

發布時間:2025/4/5 vue 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 echarts setoption方法_在Vue和React中使用ECharts的多种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

俗話說:“工欲善其事,必先利其器”。現如今已經有許多成熟易用的可視化解決方案,例如ECharts,AntV等等。我們可以把這些解決方案比作是一套套成熟的“工具”,那我們如何將這些“工具”應用于當前最熱門的兩個前端框架中呢?

不慌,現在我們就以ECharts為例,來嘗試“工具”的各種用法。

Vue中運用ECharts

首先我們要把ECharts下載下來:

npm?install?echarts?--save

全局引用

全局引用的好處就是我們一次性把ECharts引入項目后,就可以在任何一個組件中使用ECharts了。

首先在項目的main.js中引入ECharts,然后將其綁定在vue的原型上面:

import?echarts?from?'echarts'Vue.prototype.$echarts?=?echarts

接下來我們就可以在自己想用ECharts的組件中引用了:

??

看看效果:

按需引用

全局引用是把Echarts完整的引入,這樣做的缺點就是會額外的引入很多其他沒有用的配置文件,可能會導致項目體積過大。如果因此資源加載的時間過長的話,也會影響人們的體驗,畢竟人們都喜歡快和更快。

針對上述問題,我們可以采用按需引入的方式。如果有很多頁面都需要用到

Echarts的話,那我們就在main.js中引入:

let?echarts?=?require('echarts/lib/echarts')require('echarts/lib/chart/line')require('echarts/lib/component/tooltip')require('echarts/lib/component/title')Vue.prototype.$echarts?=?echarts

如果只是在偶爾幾個頁面引用,也可以單獨在.vue引入:

然后再改一下Echarts的配置項:

this.options?=?{????title:?{??????text:?"測試表格"????},????tooltip:?{??????trigger:?'axis'????},????xAxis:?{??????type:?'category',??????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']????},????yAxis:?{??????type:?'value'????},????series:?[{??????data:?[820,?932,?901,?934,?1290,?1330,?1320],??????type:?'line'????}]}

ref獲取DOM

我們可以發現,上面的例子都是用 getElementById() 來獲取渲染圖表的div,同樣我們也可以用 ref 來對真實的DOM進行操作。我們把代碼作以下修改:

??initCharts?()?{??//?this.chart?=?this.$echarts.init(document.getElementById('myChart'))??this.chart?=?this.$echarts.init(this.$refs.myChart)??this.chart.setOption(this.options)}

最終得到的效果是一樣的

React中運用ECharts

在React中運用ECharts的方式和Vue有很多相似之處,只是在寫法上有些許不同

全部引入

chart.jsx

import?React,?{?Component?}?from?'react';import?echarts?from?'echarts'import?'./chart.less';export?class?App?extends?Component?{????constructor(props)?{????????super(props);????????this.state?=?{????????????data:[820,?932,?901,?934,?1290,?1330,?1320]????????}????}????componentDidMount(){????????this.initCharts();????}????//初始化????initCharts?=?()?=>?{????????let?myChart?=?echarts.init(document.getElementById('myChart'));????????let?option?=?{????????????title:?{????????????????text:?"測試表格-react"??????????????},??????????????tooltip:?{????????????????trigger:?'axis'??????????????},??????????????xAxis:?{????????????????type:?'category',????????????????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']??????????????},??????????????yAxis:?{????????????????type:?'value'??????????????},??????????????series:?[{????????????????data:?this.state.data,????????????????type:?'line'??????????????}]????????};????????myChart.setOption(option);????????window.addEventListener("resize",?function?()?{????????????myChart.resize();????????});????}????render(){????????return?(????????????

chart.less

.chart{????display:?flex;????flex:?1;????#myChart{????????width:?400px;????????height:?400px;????}}

效果

按需引入

在React中,如果把ECharts整個引入,也會面臨項目包體積過大所造成的負面影響。當然也可以在React中按需引入ECharts,方法和Vue類似

import?echarts?=?'echarts/lib/echarts'import?'echarts/lib/chart/line'import?'echarts/lib/component/tooltip'import?'echarts/lib/component/title'

在React-Hooks中使用

在以前沒有Hook的時候,我們都是在class里面寫代碼,就如上述的方法一樣。但是現在既然Hook這個好東西出來了,哪有不用的道理?

import?React,?{?useEffect,?useRef?}?from?'react';import?echarts?from?'echarts';function?MyChart?()?{????const?chartRef?=?useRef()????let?myChart?=?null????const?options?=?{????????title:?{????????????text:?"測試表格-react-hook"????????},????????tooltip:?{????????????trigger:?'axis'????????},????????xAxis:?{????????????type:?'category',????????????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']????????},????????yAxis:?{????????????type:?'value'????????},????????series:?[{????????????data:?[820,?932,?901,?934,?1290,?1330,?1320],????????????type:?'line'????????}]????}????function?renderChart()?{????????const?chart?=?echarts.getInstanceByDom(chartRef.current)????????if?(chart)?{????????????myChart?=?chart????????}?else?{????????????myChart?=?echarts.init(chartRef.current)????????}????????myChart.setOption(options)????}????useEffect(()?=>?{????????renderChart()????????return?()?=>?{????????????myChart?&&?myChart.dispose()????????}????})????return?(????????<>????????????

看看效果

既然我們已經在Hook中成功引用了Echarts,那么為何不把代碼抽離出來,使之能讓我們進行復用呢?我們可以根據實際情況把一些數據作為參數進行傳遞:

useChart.js

import?React,?{?useEffect?}?from?'react';import?echarts?from?'echarts';function?useChart?(chartRef,?options)?{????let?myChart?=?null;????function?renderChart()?{????????const?chart?=?echarts.getInstanceByDom(chartRef.current)????????if?(chart)?{????????????myChart?=?chart????????}?else?{????????????myChart?=?echarts.init(chartRef.current)????????}????????myChart.setOption(options)????};????useEffect(()?=>?{????????renderChart()????},?[options])????useEffect(()?=>?{????????return?()?=>?{????????????myChart?&&?myChart.dispose()????????}????},?[])????return}export?default?useChart

接下來引用我們剛抽離好的Hook:

import?React,?{?useRef?}?from?'react'import?useChart?from?'./useChart'function?Chart?()?{??const?chartRef?=?useRef(null)??const?options?=?{????title:?{????????text:?"測試表格?react-hook?抽離"????},????tooltip:?{????????trigger:?'axis'????},????xAxis:?{????????type:?'category',????????data:?['Mon',?'Tue',?'Wed',?'Thu',?'Fri',?'Sat',?'Sun']????},????yAxis:?{????????type:?'value'????},????series:?[{????????data:?[820,?932,?901,?934,?1290,?1330,?1320],????????type:?'line'????}]??}??useChart?(chartRef,?options)??return?(????<>????????

最后

本文主要總結了ECharts作為數據可視化的高效工具在當今熱門的幾種前端框架中的基本用法。相信對于這方面接觸較少的小伙伴來說應該還是會有一定的幫助滴~

文章若有不足或有更好建議,歡迎提出,大家一起討論~

需要以下資料的請私聊『1』免費獲取資料!

總結

以上是生活随笔為你收集整理的echarts setoption方法_在Vue和React中使用ECharts的多种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产污片在线观看 | 毛片网站入口 | 福利一区在线 | 久久精品久久精品 | av在线不卡网站 | 欧美亚洲91| 亚洲精品久久久中文字幕痴女 | 成人免费观看视频网站 | 国产色吧 | 国产午夜电影在线观看 | 久久久久久久一区二区三区 | 久久一二区| 日本中文字幕视频在线 | 欧美com| 女人喷潮完整视频 | 亚洲制服一区二区 | 西西人体44www大胆无码 | 亚洲av综合色区无码另类小说 | 阿v视频免费在线观看 | 久久亚洲综合国产精品99麻豆精品福利 | 日韩人妻精品一区二区 | 天天综合欧美 | 57pao成人国产永久免费视频 | 国产成人精品无码高潮 | 久色网 | 开心黄色网 | 99爱在线观看 | 人人妻人人爽人人澡人人精品 | 色老头综合网 | www.超碰97.com| 欧美成人久久久免费播放 | 人妻丰满熟妇av无码久久洗澡 | 黄色免费国产 | 91精品婷婷国产综合久久竹菊 | 夜夜草视频| 性欧美一区二区三区 | 三年中文在线观看免费观看 | 国产精品一区二区人人爽 | 亚洲精品乱码久久久久久久久久久久 | 五月激情六月丁香 | 伊人网伊人影院 | 亚洲视频免费观看 | 永久看看免费大片 | 少妇姐姐| 久久亚洲一区二区三区四区 | 国产精品无人区 | 91久久国产综合久久91 | 五月天激情小说 | 日本欧美www | 国产特黄大片aaaa毛片 | 一级黄色性生活视频 | 自慰无码一区二区三区 | 亚洲精品国产乱伦 | 色天堂影院| 台湾佬中文在线 | 亚洲男人精品 | 欧美三级影院 | 国产高清视频在线免费观看 | 黄色一级一级 | 国产小视频你懂的 | 黄色录像三级 | 日韩在线观看 | 中文在线a√在线8 | 91黄在线观看 | 亚洲av成人片色在线观看高潮 | 韩国av在线播放 | 97视频在线免费观看 | 美丽的小蜜桃2:美丽人生 | 国产精品探花视频 | 亚洲一区二区三区av无码 | 香蕉视频黄色在线观看 | 九九九久久久久 | 国产日本在线播放 | 日本中文字幕在线观看视频 | 快播日韩| xx性欧美肥妇精品久久久久久 | 欧美人妖xxxx| 99久久国产免费 | 国产99久一区二区三区a片 | 婷婷久久综合网 | 人乳喂奶hd无中字 | 欧美成人a交片免费看 | 成人欧美在线视频 | 少妇高潮一区二区三区在线 | 欧美国产综合视频 | 欧美日韩一区二区精品 | 美景之屋电影免费高清完整韩剧 | 国产污视频 | 国产亚洲精品久久久久动 | 女的高潮流时喷水图片大全 | 国内精品免费视频 | 欧美午夜精品久久久久久浪潮 | 精品国产97 | 欧美区在线观看 | 强行挺进皇后紧窄湿润小说 | 欧美视频在线观看一区 | 高跟肉丝丝袜呻吟啪啪网站av | 69sex久久精品国产麻豆 | 一区二区视频免费在线观看 |