在Ant Design Pro(React)中使用ECharts

使用Ant Design Pro解决方案可以快速搭建前端框架,而ECharts是前端最流行,功能最强大的前端图表库。

下面将讲解下如何在Ant Design Pro使用ECharts。

Ant Design Pro本身是通过Webpack进行打包的,而ECharts本身也提供了Webpack的安装方式,因此我们仅需要通过npm命令进行安装即可:

npm install echarts --save

如果没有报错,说明ECharts正常安装完毕。

下面分两种情况进行讲解:静态显示数据流通应用

(1)静态显示

(a) 首先在/common/menu.js文件添加你的展示页及路径

比如:

{
  name: '测试图表',
  path: 'testechart',
  // hideInBreadcrumb: true,
  // hideInMenu: true,
},

我们是想在dashboard下面新增一个页面,如下:

(b) 然后在/common/router.js文件中添加以下内容,即你需要用到的models文件及业务实现代码路径

    '/dashboard/testechart': {
      component: dynamicWrapper(app, ['monitor'], () => import('../routes/Dashboard/testEchart')),
    },

(c) 然后在/routes/Dashboard/路径下添加你的业务实现逻辑代码testEchart.js,需要注意的是:名字可以更改,但是需要与上述保持一致,testEchart.js代码如下:

import React, { Component } from 'react';
// 引入 ECharts 主模块
import echarts from 'echarts/lib/echarts';
// 引入柱状图
import  'echarts/lib/chart/bar';
// 引入提示框和标题组件
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';

class EchartsTest extends Component {
    componentDidMount() {
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
        // 绘制图表
        myChart.setOption({
    title : {
        text: '未来一周气温变化',
        subtext: '纯属虚构'
    },
    tooltip : {
        trigger: 'axis'
    },
    legend: {
        data:['最高气温','最低气温']
    },
    toolbox: {
        show : true,
        feature : {
            mark : {show: true},
            dataView : {show: true, readOnly: false},
            magicType : {show: true, type: ['line', 'bar']},
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    calculable : true,
    xAxis : [
        {
            type : 'category',
            boundaryGap : false,
            data : ['周一','周二','周三','周四','周五','周六','周日']
        }
    ],
    yAxis : [
        {
            type : 'value',
            axisLabel : {
                formatter: '{value} °C'
            }
        }
    ],
    series : [
        {
            name:'最高气温',
            type:'line',
            data:[11, 11, 15, 13, 12, 13, 10],
            markPoint : {
                data : [
                    {type : 'max', name: '最大值'},
                    {type : 'min', name: '最小值'}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name: '平均值'}
                ]
            }
        },
        {
            name:'最低气温',
            type:'line',
            data:[1, -2, 2, 5, 3, 2, 0],
            markPoint : {
                data : [
                    {name : '周最低', value : -2, xAxis: 1, yAxis: -1.5}
                ]
            },
            markLine : {
                data : [
                    {type : 'average', name : '平均值'}
                ]
            }
        }
    ]
});
    }
    render() {
        return (
            <div id="main" style={{width: '80%',height:400}}></div>
        );
    }
}
export default EchartsTest;

效果如下:

一个在Ant Design Pro解决方案中使用ECharts的静态展示示例就完成了,然而实际应用中很少说数据是固定不变的,数据往往是通过调用后端接口来获得的,然后再通过前端渲染出来,示例如下文所示。

(2)数据流通应用

接下来,我们来完整模拟一个真实开发场景并实现这种数据流通的功能。

注:我们不搭建后台Server服务,而是使用Ant Design Pro解决方案提供的Mock数据功能来进行数据模拟。

补充:

.roadhogrc.mock.js:功能是提供mock数据的功能,模拟后台服务

src/services/api.js:功能是定义请求函数,在该文件中,定义真实需要请求的后端url地址和参数

src/models/*.js:models文件夹下的文件中整个Ant Design Pro解决方案中数据的存储和请求管理中心

src/routes/*.js:routes文件夹下的文件存放的是真实页面组件,在该组建中,我们一方面触发models下的请求动作,另一方面会读取models中存储的数据

下面我们将依次来实现这几个文件:

(a)在.roadhogrc.mock.js文件中,我们模拟后台来提供数据,即在proxy字典中,添加如下内容:

'POST /mock_test_data': (req, res) => {
  res.send({ 
    status: 'ok', 
    code: 200, 
    x_data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
  });
},

意思就是当我们使用POST方式访问/mock_test_data地址时,会返回如下信息:

{ 
    status: 'ok', 
    code: 200, 
    x_data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
  }

(2)接下来,我们修改/src/service/api.js文件,该文件中,我们需要定义函数如下:

export async function queryTestData() {
  // 查询测试数据
  return request('/mock_test_data', {
    method: 'POST',
    body: {},
  });
}

(3)然后我们得在/src/models/目录下添加我们的models文件,命名为:test.js

内容如下:

// 从services/api文件中引入queryTestData函数
import {
  queryTestData,
} from '../services/api';
export default {
  namespace: 'test',

  // 数据存储中心,初始化为空
  state: {
    x_data: [],
    series: [],
  },

  effects: {
    // 定义动作,调用该动作时发起请求
    *fetchTestData(body, { call, put }) {
      const response = yield call(queryTestData);
      // 接收到请求的返回值后,调用saveTestData进行存储
      yield put({
        type: 'saveTestData',
        x_data: response.x_data,
        series: response.series,
      });
    }
  },
  reducers: {
    // 将请求的响应值存储至数据存储中心中。
    saveTestData(state, action) {
      return {
        ...state,
        x_data: action.x_data,
        series: action.series
      };
    }
  },
};

(4)在/common/menu.js文件添加你的展示页及路径

{
  name: '测试图表2',
  path: 'testechart2',
  // hideInBreadcrumb: true,
  // hideInMenu: true,
},

(5)然后在/common/router.js文件中添加以下内容,即你需要用到的models文件及业务实现代码路径

    '/dashboard/testechart2': {
      component: dynamicWrapper(app, ['monitor', 'test'], () => import('../routes/Dashboard/testEchartDemo')),
    },

(6)最后我们需要在/routes/Dashboard/路径下编写我们真实的页面组件代码了,文件名为:testEchartDemo.js,内容如下:

注:所有涉及到的文件名可以自定义,但必须保证一致,比如/common/router.js文件中import('../routes/Dashboard/testEchartDemo')与/routes/Dashboard/testEchartDemo.js文件对应

import React, { Component } from 'react';
import { connect } from 'dva';
// 引入 ECharts 主模块
import echarts from 'echarts/lib/echarts';
// 引入柱状图
import  'echarts/lib/chart/bar';
// 引入提示框和标题组件
import 'echarts/lib/component/tooltip';
import 'echarts/lib/component/title';
@connect(({ setting, test, loading }) => ({
  setting, test
}))

//class EchartsTest extends Component {
export default class EchartsTest extends React.Component {

  constructor(props) {
        super(props);
        // 设置state
        this.state = {
        };
    }

  componentDidMount() {
    this.props.dispatch({
      type: 'test/fetchTestData',
      //body: {}
      body:{}
    });
  }
  componentWillReceiveProps(nextProps) {
    var myChart = echarts.init(document.getElementById('main'));
    // 绘制图表
    myChart.setOption({
        title: { text: 'ECharts 入门示例' },
        tooltip: {},
        xAxis: {
            data: nextProps.test.x_data
        },
        yAxis: {},
        series: nextProps.test.series
    });
  }
  render() {
    return (
        <div id="main" style={{width: '80%',height:400}}></div>
    );
  }
}

(7) 运行效果

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Ant Design Pro React 是一个基于 React 技术栈的企业级后台前端解决方案,它提供了丰富的组件和模板,可以帮助开发者快速搭建高质量的后台应用Ant Design Pro React 的特点包括:可配置的路由、权限管理、国际化支持、数据可视化等。它还提供了丰富的文档和示例,方便开发者学习和使用。 ### 回答2: Ant Design Pro React是一个基于React框架和Ant Design组件库开发的企业级前端UI框架。这个框架主要是用来开发大型企业级应用系统的,拥有很好的可扩展性和易维护性,可以帮助我们快速搭建复杂的应用系统。下面我将从以下几个方面来介绍这个框架的特点和优势。 1. 丰富的组件库 Ant Design Pro React基于Ant Design组件库进行开发,拥有丰富的UI组件,从布局、表单、导航、图表等各方面都有很好的支持,可以大大提高我们的开发效率。此外,Ant Design Pro React还提供了很多常用的业务组件,如登录、注册、个人心、订单、搜索等,可以直接使用,减少重复开发。 2. 可扩展性良好 Ant Design Pro React框架采用最新版的Webpack v4进行打包,整个项目结构清晰,很容易通过Webpack进行定制化的扩展,例如添加自定义的loader、plugin等等。此外,Ant Design Pro React内部也内置了插件化的机制,我们可以通过编写插件来快速扩展应用。 3. 严格的工程化约束 Ant Design Pro React框架还可以算作是一个工程化的模板,以最新的Web前端技术为基础,包括Webpack、Babel、ESLint、Antd等,并且还遵循了一些工程化规范,如文件夹规范、模块导入规范、代码规范等,保证项目代码的易维护性和健壮性。 4. 良好的性能表现 Ant Design Pro React框架内部使用了很多性能优化技巧,如动态路由的实现、组件的异步加载、webpack的动态import、缓存技术等等,这些优化措施大幅提升了应用的性能。 总而言之,Ant Design Pro React框架是在企业级应用开发非常优秀的一个前端框架,具有丰富的UI组件、可扩展性良好、严格的工程化约束以及良好的性能表现等优点,能够大大提升前端开发的效率和代码的健壮性,值得前端开发者们的使用和学习。 ### 回答3: Ant Design Pro是由蚂蚁金服推出的开箱即用的企业级前端应用框架,它基于React框架,并内置了一系列的UI组件和工具库,可以快速搭建出高质量的交互式界面,用于构建后台管理系统、信息管理系统等企业级应用Ant Design Pro的优势在于它提供了非常完善的可定制化扩展性,使开发者可以按照不同的业务需要来进行个性化的定制和功能扩展。它内置了丰富的UI组件和布局模板,包括表单、表格、图表、列表等常用组件,支持多种主题样式和语言,同时还可以方便地集成第三方组件库,如Dva、Umi等等。此外,Ant Design Pro也提供了丰富的工具库,如路由、状态管理、请求库等,可大大提高开发效率和代码质量。 另外,Ant Design Pro还支持可视化布局和配置,内置了Ant Design Pro页面设计器,可以直接在设计器自定义页面布局,选择相应的组件进行拖拽和放置,同时提供了配置文件和模板的导入和导出功能,让开发者可以轻松地重复使用和分享自己的设计和配置。 总之,Ant Design Pro的出现极大地简化了企业级应用的开发流程,提供了高效和可定制的组件库和工具库,可大大提升开发效率和代码质量。除了在蚂蚁金服内部大量应用Ant Design Pro也被越来越多的企业和开发者采用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rs勿忘初心

您的鼓励将是我的最大创动原动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值