欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

react中使用echarts,并實(shí)現(xiàn)tooltip循環(huán)輪播方式

 更新時(shí)間:2024年01月24日 14:33:10   作者:土豆Coder  
這篇文章主要介紹了react中使用echarts,并實(shí)現(xiàn)tooltip循環(huán)輪播方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

react使用echarts,實(shí)現(xiàn)tooltip循環(huán)輪播

查看效果

當(dāng)我們開發(fā)數(shù)據(jù)看板類需求時(shí),需要圖標(biāo)實(shí)現(xiàn)自動(dòng)輪播的效果,

具體效果如下:

實(shí)現(xiàn)代碼

  • 這里整個(gè)圖表為一個(gè)組件,通過傳data和配置入組件來顯示
  • 按需加載echarts組件
  • react生命鉤子中實(shí)現(xiàn)echarts的resize事件
  • 當(dāng)傳入的props數(shù)據(jù)發(fā)生變化后需要重新渲染echarts
import React, { Component } from 'react'
import { Empty } from 'antd'
import echarts from 'echarts/lib/echarts'
import 'echarts/lib/chart/line'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/markLine'
import 'echarts/lib/component/title'

class LineBarShow extends Component {
	echartsObj = null
	loopTooltipTimer = null
	state = {
	  xAxisData: [],
	  seriesData: []
	}
	componentDidMount () {
	 window.addEventListener('resize', this.chartResize)
	}
	chartResize = () => {
	 setTimeout(() => {
	   this.echartsObj && this.echartsObj.resize()
	 }, 100)
	}
	componentWillUnmount () {
	 window.removeEventListener('resize', this.chartResize)
	 this.loopTooltipTimer = null
	}
	// 當(dāng)props發(fā)生改變--start
	// 當(dāng)props發(fā)生變化后將值賦給當(dāng)前組件的state變量
	static getDerivedStateFromProps (nextProps, prevState) {
	  return {
	    xAxisData: nextProps.data.xAxisData,
	    seriesData: nextProps.data.seriesData
	  }
	}
	loopShowTooltip = () => {
	  let index = 0
	  this.loopTooltipTimer = setInterval(() => {
	    this.echartsObj.dispatchAction({
	      type: 'showTip',
	      seriesIndex: 0,
	      dataIndex: index
	    })
	    // 循環(huán)輪播
	    index = this.state.xAxisData.length - 1 ? 0 : ++index
	  }, 1000)
	}
	componentDidUpdate () {
		let { xAxisData } = this.state
		if (xAxisData && xAxisData.length) {
			this.echartsObj = echarts.init(document.getElementById(this.props.id))
			let option = {...}
			this.echartsObj.setOption(option)
			// 這里可以加判斷,是否需要循環(huán)輪播
			// 這里默認(rèn)顯示
			this.loopShowTooltip()
		}
	}
	// 當(dāng)props發(fā)生改變--end
	render () {
		let { xAxisData } = this.state
	    return (
	      <div className="full-height">
	        { xAxisData && xAxisData.length ? (
	          <div id={this.props.id} className="full-height"></div>
	        ) : (
	          <Empty />
	        )}
	      </div>
	    )
	}
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • React開發(fā)進(jìn)階redux saga使用原理詳解

    React開發(fā)進(jìn)階redux saga使用原理詳解

    這篇文章主要為大家介紹了React開發(fā)進(jìn)階redux saga使用原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • react中代碼塊輸出,代碼高亮顯示,帶行號(hào),能復(fù)制的問題

    react中代碼塊輸出,代碼高亮顯示,帶行號(hào),能復(fù)制的問題

    這篇文章主要介紹了react中代碼塊輸出,代碼高亮顯示,帶行號(hào),能復(fù)制的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • ReactJs實(shí)現(xiàn)樹形結(jié)構(gòu)的數(shù)據(jù)顯示的組件的示例

    ReactJs實(shí)現(xiàn)樹形結(jié)構(gòu)的數(shù)據(jù)顯示的組件的示例

    本篇文章主要介紹了ReactJs實(shí)現(xiàn)樹形結(jié)構(gòu)的數(shù)據(jù)顯示的組件的示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • React?Virtual?DOM前端框架全面分析

    React?Virtual?DOM前端框架全面分析

    這篇文章主要為大家介紹了React?Virtual?DOM前端框架全面分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 基于React實(shí)現(xiàn)虛擬滾動(dòng)的方案詳解

    基于React實(shí)現(xiàn)虛擬滾動(dòng)的方案詳解

    這篇文章將以固定高度和非固定高度兩種場(chǎng)景展開React中虛擬滾動(dòng)的實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • React Fragment 和空標(biāo)簽(<></>)用法及區(qū)別詳解

    React Fragment 和空標(biāo)簽(<></>)用法及區(qū)別詳解

    本文詳細(xì)介紹了React中的Fragment和空標(biāo)簽的使用,包括它們的區(qū)別、使用場(chǎng)景、性能考慮以及最佳實(shí)踐,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • React使用TypeScript的最佳實(shí)踐和技巧

    React使用TypeScript的最佳實(shí)踐和技巧

    在React項(xiàng)目中使用TypeScript可以顯著提高代碼的可維護(hù)性和可讀性,并提供強(qiáng)大的類型檢查功能,減少運(yùn)行時(shí)錯(cuò)誤,以下是一些優(yōu)雅地將TypeScript集成到React項(xiàng)目中的最佳實(shí)踐和技巧,需要的朋友可以參考下
    2024-06-06
  • react hook使用useState更新數(shù)組,無法更新問題及解決

    react hook使用useState更新數(shù)組,無法更新問題及解決

    這篇文章主要介紹了react hook使用useState更新數(shù)組,無法更新問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 在React中集成第三方庫(kù)和插件方式

    在React中集成第三方庫(kù)和插件方式

    本文詳細(xì)介紹了如何在React項(xiàng)目中高效集成第三方庫(kù)和插件,包括選擇合適的庫(kù)、封裝為React組件、按需加載、避免直接操作DOM、處理庫(kù)的更新和卸載、樣式處理與主題定制、性能優(yōu)化以及調(diào)試與維護(hù)等方面,通過遵循這些最佳實(shí)踐,可以確保集成過程高效且優(yōu)雅
    2025-03-03
  • React如何通過@craco/craco代理接口

    React如何通過@craco/craco代理接口

    這篇文章主要介紹了React如何通過@craco/craco代理接口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論