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>
        )
      }
    }

      

  • 相关阅读:
    一个很好的菜单源码
    在盗版xp下安装ie7正式版 
    [导入]买新手机了
    [导入]手机解锁全集
    12种找工作方式的成功率
    Kerberos的原理 3
    Kerberos的原理 4
    Kerberos的原理 1
    jQuery 原理的模拟代码 6 代码下载
    Hashtable 中的键值修改问题
  • 原文地址:https://www.cnblogs.com/yetiezhu/p/12846010.html
Copyright © 2011-2022 走看看