zoukankan      html  css  js  c++  java
  • react 如果简单实用echarts

    echarts 官网:https://echarts.apache.org/zh/index.html

    首先先下载 

    npm i echarts -S
    

      

    第二步页面引入:、

    import echarts from 'echarts'
    

      

    第三步页面使用。我这里写了个demo,自己模拟了一个json数据。然后axios请求数据。存在state里,把state的数据弄到图标中。  注意,外层盒子一定要设置高度。

    import React, { Component } from 'react';
    import echarts from 'echarts'
    import Axios from 'axios'
    import './styles.less'

    export default class Echarts extends Component {
      state = {
        data: []
      }
      //请求数据
      getEchartsData = () => {
        Axios.get('/echartsData.json').then(res => {
          this.setState({
            data: res.data.list
          })
          this.initEcharts(); //调用下 封装的Echarts
        })
      }

      onResize = () => {
        this.myChart.resize()
      }

      //封装Echarts
      initEcharts = () => {
        // var myChart = echarts.init(document.getElementsByClassName('echarts_wrap')[0]);
        this.myChart = echarts.init(this.el);

        // 指定图表的配置项和数据
        var option = {
          tooltip: {
            trigger: 'item',
            formatter: '{a} <br/>{b}: {c} ({d}%)'
          },
          legend: {
            orient: 'vertical',
            left: 10,
            data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
          },
          series: [
            {
              name: '访问来源',
              type: 'pie',
              radius: ['50%', '70%'],
              avoidLabelOverlap: false,
              label: {
                show: false,
                position: 'center'
              },
              emphasis: {
                label: {
                  show: true,
                  fontSize: '30',
                  fontWeight: 'bold'
                }
              },
              labelLine: {
                show: false
              },
              data: this.state.data
            }
          ]
        };
        // 自动缩放 拖动屏幕
        window.addEventListener('resize', this.onResize)

        // 处理点击事件判断点击的哪一个,进行一些逻辑处理
        this.myChart.on('click', function (params) {
          switch (params.name) {
            case '直接访问':
              console.log('直接访问')
              break;
            case '邮件营销':
              console.log('邮件营销')
              break;
            default:
              break;
          }
        });
        // 使用刚指定的配置项和数据显示图表。
        this.myChart.setOption(option);
      }

      componentDidMount() {
        this.getEchartsData() //调用获取的数据
      }

      componentWillUnmount () {
        window.removeEventListener('resize', this.onResize) //销毁
      }

      render() {
        return (
          <div className='views_echarts'>
            <div className='echarts_wrap' ref={v => this.el = v}></div>
          </div>
        )
      }
    }

      

  • 相关阅读:
    Windows核心编程(笔记11) 第十三章 Windows内存体系结构 四
    源码网站推荐 四
    程序员应知——破窗与童子军军规 四
    warning LNK4098 VC开发中遇到的问题 四
    各种系统架构图及其简介 四
    Windows核心编程(笔记10) 第十一章 Windows线程池 第十二章 纤程 四
    Windows核心编程(笔记12) 第十四章 探索虚拟内存 第十五章 在应用程序中使用虚拟内存 四
    Perl、PHP、ASP、JSP技术比较 四
    #pragma 预处理指令详解 四
    实战剖析三层架构 四
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12846010.html
Copyright © 2011-2022 走看看