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

react hooks使用Echarts圖表中遇到的情況及相關配置問題

 更新時間:2024年03月14日 08:56:24   作者:小劉加油!  
這篇文章主要介紹了react hooks使用Echarts圖表中遇到的情況及相關配置問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

項目開發(fā)中,需要做一個報表功能,看了下UI圖,初步定下使用 echarts,不過之前使用 echarts 都是在 Vue2Vue3 框架下開發(fā),第一次使用 react-hooks 開發(fā) echarts,將流程及一些 相關配置 寫個隨筆記錄下。

1、 下載 echarts 包

npm install echarts --save

2、引入eaharts

import * as echarts from 'echarts' // 引入 echarts 核心模塊

注意:

  • 上面的引入寫法是 echarts V5版本的寫法,因為下載默認下載 V5版本
  • 如果需要按需引入,請參考echarts 官網(wǎng)

效果圖如下所示:

3、使用

import * as echarts from 'echarts' // 引入 echarts 核心模塊

const index = () => {
	const initChart = () => {
		let chartDom: any = document.getElementById('chart')
        let myChart = echarts.init(chartDom)
        myChart.clear()
        let option:any = null
        option = {
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'shadow'
                }
            },
            title: {
                show: true,
                text: '各廠手續(xù)辦理數(shù)量總覽',
                left: 10,
                top: 10,
            },
            dataZoom: [
                {
                    type: 'slider',  // slider 代表有滑塊,inside 代表內置,左右滑動
                    id: 'dataZoomX',
                    start: 0, // 數(shù)據(jù)窗口范圍的起始百分比。范圍是:0 ~ 100。表示 0% ~ 100%。
                    show: true,  // 是否顯示下方滾動條,默認為true
                    realtime: true,   // 是否實時更新
                    minValueSpan: 5,  // 顯示數(shù)據(jù)的最小條數(shù)
                    maxValueSpan: 10,  //顯示數(shù)據(jù)的最大條數(shù)
                    

                    fillerColor: "#CED4DD", //滑動塊的顏色

                    xAxisIndex: [0],  // 表示這個 dataZoom 組件控制 第一個 xAxis
                    handleSize: 0, //滑動條的 左右2個滑動條的大小
                    height: 10, //組件高度
                    bottom: 0, // 控制滾動條距離底部的位置;
                    borderColor: "#FAFAFA",  // 邊框顏色
                    
                    backgroundColor: "#FAFAFA", //兩邊未選中的滑動條區(qū)域的顏色
                    showDataShadow: false, //是否顯示數(shù)據(jù)陰影 默認auto
                    showDetail: false, //即拖拽時候是否顯示詳細數(shù)值信息 默認true
                    filterMode: "filter",
                    brushSelect: false  // 滾動條上面的陰影
                }
            ],
            legend: {
                top: 10,
                right: 20
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            xAxis: [
                {
                    type: 'category',
                    data: [], // 數(shù)組-數(shù)據(jù)
                    axisLabel: {
                        interval: 0,
                    },
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    // splitNumber: 5   // Y軸坐標精度,默認為5
                }
            ],
            series: [
                {
                    name: '已完成',
                    type: 'bar',
                    stack: 'overlap',
                    label: {
                        show: true,
                        position: 'inside'
                    },
                    emphasis: {
                        focus: 'series'
                    },
                    data: [], 數(shù)組-數(shù)據(jù)
                    itemStyle: {
                        color: '#0194FE'
                    }
                },
                {
                    name: '辦理中',
                    type: 'bar',
                    stack: 'overlap',
                    emphasis: {
                        focus: 'series'
                    },
                    label: {
                        show: true,
                        position: 'inside'
                    },
                    data: [], 數(shù)組-數(shù)據(jù)
                    itemStyle: {
                        color: '#5CDBD3'
                    }
                },
                {
                    name: '未辦理',
                    type: 'bar',
                    stack: 'overlap',  // stack: 'Ad', 好像也有同樣效果
                    emphasis: {
                        focus: 'series'
                    },
                    label: {
                        show: true,
                        position: 'inside'
                    },
                    data: [], 數(shù)組-數(shù)據(jù)
                    itemStyle: {
                        color: '#FFC53D'
                    }
                },
            ]
        };

        myChart.resize()
        option && myChart.setOption(option);

        // 這個點擊事件只限制于 點擊柱形中有數(shù)據(jù)的部分,沒有數(shù)據(jù)的部分,點擊無效
        myChart.on('click', function(params: any) {
            handleGetBottomList(params.name, params.seriesName)
        })
	}
	
	useEffect( () => {
		initChart()
	})

	return (
		<div id='chart'></div>
	)
}

相關參數(shù)配置

1. 形成堆疊柱狀圖

series 配置中,將每一個柱的對象,其中的 stack 參數(shù),設置成一樣的 ‘overlap’ / ‘Ad’

2. 設置右上方的表頭的位置

3. 設置echarts 柱狀圖 橫向滾動

4. X軸坐標 label 文字過長,無法顯示

  • interval:間隔 每個坐標之間的間隔,正常顯示設置 0 就可以了。
  • rotate:偏移,也可以說是傾斜。值是number類型,視情況而定。

如果使用了偏移,可能會出現(xiàn)新的問題,就是左右邊距不夠文字會被遮擋一部分,這時候可以進行如下配置。

grid: {
    left:"20%",   //grid 組件離容器左側的距離
    right:"30px", //grid 組件離容器右側的距離
    bottom:"20%"  //grid 組件離容器下邊距的距離
}

5. 點擊柱狀圖,調用方法

如果項目開發(fā)中有這樣的需求:

點擊某一個柱狀圖,調用接口獲取柱狀圖的某些數(shù)據(jù),可以進行這樣操作:

 myChart.on('click', function(params: any) {
       // params 為柱狀圖的參數(shù) 
       // 如果是普通柱狀圖,使用 params.name (對應的x軸label) 參數(shù)
       // 如果是折疊柱狀圖,使用 params.name   params.seriesName (對應的屬性)
       // 如果還需要什么參數(shù),可以打印 params 查找
       console.log('params', params)
 })

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • React通過conetxt實現(xiàn)多組件傳值功能

    React通過conetxt實現(xiàn)多組件傳值功能

    Context 提供了一種在組件之間共享此類值的方式,而不必顯式地通過組件樹的逐層傳遞 props。本文給大家介紹React通過conetxt實現(xiàn)多組件傳值功能,感興趣的朋友一起看看吧
    2021-10-10
  • React父組件如何調用子組件的方法推薦

    React父組件如何調用子組件的方法推薦

    在React中,我們經常在子組件中調用父組件的方法,一般用props回調即可,這篇文章主要介紹了React父組件如何調用子組件的方法推薦,需要的朋友可以參考下
    2023-11-11
  • 詳解webpack2+node+react+babel實現(xiàn)熱加載(hmr)

    詳解webpack2+node+react+babel實現(xiàn)熱加載(hmr)

    這篇文章主要介紹了詳解webpack2+node+react+babel實現(xiàn)熱加載(hmr) ,非常具有實用價值,需要的朋友可以參考下
    2017-08-08
  • react中通過props實現(xiàn)父子組件間通信的使用示例

    react中通過props實現(xiàn)父子組件間通信的使用示例

    在React中,父組件可以通過props屬性向子組件傳遞數(shù)據(jù),子組件可以通過props屬性接收父組件傳遞過來的數(shù)據(jù),本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • React類組件中super()和super(props)的區(qū)別詳解

    React類組件中super()和super(props)的區(qū)別詳解

    這篇文章給大家詳細介紹了React類組件中super()和super(props)有什么區(qū)別,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • react-router實現(xiàn)跳轉傳值的方法示例

    react-router實現(xiàn)跳轉傳值的方法示例

    這篇文章主要給大家介紹了關于react-router實現(xiàn)跳轉傳值的相關資料,文中給出了詳細的示例代碼,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。
    2017-05-05
  • 在React中集成第三方庫和插件方式

    在React中集成第三方庫和插件方式

    本文詳細介紹了如何在React項目中高效集成第三方庫和插件,包括選擇合適的庫、封裝為React組件、按需加載、避免直接操作DOM、處理庫的更新和卸載、樣式處理與主題定制、性能優(yōu)化以及調試與維護等方面,通過遵循這些最佳實踐,可以確保集成過程高效且優(yōu)雅
    2025-03-03
  • React圖片壓縮上傳統(tǒng)一處理方式

    React圖片壓縮上傳統(tǒng)一處理方式

    這篇文章主要介紹了React圖片壓縮上傳統(tǒng)一處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • React?正確使用useCallback?useMemo的方式

    React?正確使用useCallback?useMemo的方式

    這篇文章主要介紹了React?正確使用useCallback?useMemo的方式,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • react無限滾動組件的實現(xiàn)示例

    react無限滾動組件的實現(xiàn)示例

    本文主要介紹了react無限滾動組件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05

最新評論