NodeJS + React + Webpack + Echarts
最近画了个简单的前端图,使用百度的echarts,基于原来项目的NodeJS+React+Webpack框架。在此记录一下:
1. 在react里封装echarts组件,并调用后端API。
(参考的是一个只有样本数据,无数据封装的例子,对于没有接触前端却要对接这个图的我,简直是折磨得不行)。
import React from 'react';
import { tablelineagenodes, tablelineagelinks } from 'actions';
import { connect } from 'react-redux';
import { push } from 'react-router-redux';
import { Button } from 'antd'; // 导入echarts
var echarts = require('echarts/lib/echarts') // 必须
require('echarts/lib/chart/sankey') // 图表类型
require('echarts/lib/component/tooltip') // echart插件
require('echarts/lib/component/title') // 标题插件
require('echarts/lib/component/grid') // echart插件 // 后端封装接口
@connect(
state => ({
nodes: state.tablelineagenodes.list,
links: state.tablelineagelinks.list
}), {
pushRouter: push,
queryTablelineagenodes: tablelineagenodes.queryTablelineagenodes,
queryTablelineagelinks: tablelineagelinks.queryTablelineagelinks
}
) class Lineage extends React.Component {
state = {context: '', isRender: false}; constructor(props) {
super(props)
this.setSankeyOption = this.setSankeyOption.bind(this)
this.initSankey = this.initSankey.bind(this)
} routeBuildRecord = _url => {
this.props.pushRouter(_url);
} initSankey() {
this.props.queryTablelineagenodes()
this.props.queryTablelineagelinks()
} componentDidMount() { // 取数
this.initSankey()
} componentDidUpdate() { // 画图
const {nodes, links} = this.props;
console.log(nodes)
console.log(links) if (nodes.length !== 0 && links.length !== 0) {
// 初始化echart
let myChart = echarts.init(document.getElementById("app"))
// 我们要定义一个setSankeyOption函数将data传入option里面
let options = this.setSankeyOption(nodes, links)
// 设置options
myChart.setOption(options)
}
} render() {
return (
<div className="sankey-react">
<div className="condition">
<Button type="primary" onClick={() => this.routeBuildRecord("/datacenter/datalineage")} >查询的实体血缘为空,重新修改查询吧</Button>
</div>
<div id="app" style={{width: "100%", height: "200px"}}></div>
</div>
)
} // 一个基本的echarts图表配置函数
setSankeyOption(nodes, links) {
return {
title: {
text: '实体血缘图'
},
tooltip: {
trigger: 'item',
triggerOn: 'mousemove'
},
animation: false,
grid: {
left: '5%',
right: '0',
top: '200px',
bottom: '5%',
containLabel: true
},
series: [
{
type: 'sankey',
layout: 'none',
radius: '10%',
center: ['50%', '50%'],
data: nodes,
links: links,
itemStyle: {
normal: {
borderWidth: 1,
borderColor: '#aaa'
}
},
lineStyle: {
normal: {
color: 'source',
curveness: 0.5
}
}
}
]
}
}
} export default Lineage;
2. 结果展示:

NodeJS + React + Webpack + Echarts的更多相关文章
- webpack+react实现echarts可视化配置
先上效果 开发环境要求 需要事先安装node及npm 前期准备 1.创建文件夹react-echarts-editor2.在项目根目录(以下称根目录)下创建src目录3.在项目根目录下创建dist目录 ...
- React + webpack 快速搭建开发环境
因网上大多React + webpack快速搭建的运行不起来,便自行写了一个.在搭建开发环境的前需安装nodejs,npm. 新建一个工作目录,比如叫reactdome,在reactdome目录中运行 ...
- nodejs+gulp+webpack基础知识
nodejs+gulp+webpack基础知识 2019年08月22日 11:49:40 天府云创 阅读数 22 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文 ...
- Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)
Webstorm+Webpack+echarts ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...
- 部署React+webpack工程的步骤
# 部署React+webpack工程的步骤ps:以Mac os系统做开发环境.因为npm现在使用灰常的慢,所以我使用淘宝境像cnpm. 1,准备工作: 先确保存已经安装了node.js: 2,文件部 ...
- scss + react + webpack + es6
scss + react + webpack + es6 写在前面: 刚学习完慕课网里的一个幻灯片案例,自己加了刚学的react,两者结合.首先让大家看看效果 点击此处 你可以先用纯js实现上面的效果 ...
- react +webpack 配置px2rem
项目背景需要适配ipad 以及手机端,这时候当然要告别刀耕火种时代啦(自己算rem),因为已经有成熟的工具啦,即px2rem(https://www.npmjs.com/package/px2rem) ...
- 真刀实战地搭建React+Webpack+Express搭建一个简易聊天室
一.前面bb两句 因为自惭(自残)webpack配置还不够熟悉,想折腾着做一个小实例熟悉.想着七夕快到了,做一个聊天室自己和自己聊天吧哈哈.好了,可以停止bb了,说一下干货. 二. 这个项目能学到啥? ...
- react+webpack+babel环境搭建
[react+webpack+babel环境搭建] 1.react官方文档推荐使用 babel-preset-react.babel-preset-es2015 两个perset. Babel官方文档 ...
随机推荐
- sublime 最近用的有点卡
index_files:false,
- Hadoop 管理工具HUE配置-hdfs_clusters配置
在HUE的hdfs_clusters中目前主要是配置hdfs相关的,配置好了之后便可以在hue中愉快的管理数据了,不过目前的配置还是比较...简单的.. 里面的配置主要是参考了hue官方文档,还 ...
- uoj#272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
http://uoj.ac/problem/272 这题的式子形式是异或卷积的三进制推广,因此可以设计一个类似fwt的变换,这里需要一个三次单位根$w$,满足$w^3\%p==1$且$(1+w+w^2 ...
- springboot(运行原理参考借鉴)
什么是springboot答:Spring Boot makes it easy to create stand-alone, production-grade Spring based Applic ...
- 解决wordpress文章归档和分类目录小工具标题重复问题
最近更新了wordpress,发现更新后小工具中的文章归档和分类目录出现了标题重复,经检查,是部分主题下,主题的代码已经输出了标题,而wordpress的代码又再次输出了一次.于是我们需要删除word ...
- 学习笔记之GenFu
Everybody was GenFu Fighting - GenFu http://genfu.io/ GenFu is a test and prototype data generation ...
- 1118 Birds in Forest (25 分)
1118 Birds in Forest (25 分) Some scientists took pictures of thousands of birds in a forest. Assume ...
- 标准C库函数
标准库函数由15个头文件组成 1.math.h 1.1 绝对值函数 1.2 幂函数.开平方函数 1.3 指数函数.对数函数 1.5 三角函数 注意参数范围: 1.6 取整函数.取余函数 2.字符串处理 ...
- Android ImageView点击效果
ImageView设置点击效果需要注意两点,第一个设置android:clickable="true",第二个 <item android:drawable="@d ...
- MCC MNC in china
A mobile country code (MCC) is used in combination with a mobile network code (MNC) (a combination k ...