Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/WsmDyj/echarts-for-taro

📜Echarts component library for taro
https://github.com/WsmDyj/echarts-for-taro

echarts taro

Last synced: 3 months ago
JSON representation

📜Echarts component library for taro

Lists

README

        

## TaroEcharts简介
本项目是在实际开发中总结出来的一套基于ec-canvas封装的适用于Taro版本的图表框架。开发者可以通过简单的配置及 React 的语法,快速开发图表,满足各种可视化需求。

#### 微信小程序预览:
![TaroECharts Demo](https://user-gold-cdn.xitu.io/2019/1/17/1685a1063cc8a9bf?w=439&h=413&f=png&s=106489)
## 实现过程
### 1 下载
为了兼容小程序 Canvas,我们首先去构建ec-canvas下载到本地。其中ec-canvas是echarts官网提供的组件,我们可以自行下载或者去[官网自定义构建](https://echarts.baidu.com/builder.html)选择自己需要的图表或插件进行下载。
### 2 引入组件
在项目中引入我们需要的组件库,这里统一将其放在`src/components/ec-canvas`文件夹下。大家可将[该文件夹](https://github.com/WsmDyj/echarts-for-taro/tree/master/src/components/ec-canvas)导入到自己项目中去。其中echarts.js就是刚我们自行下载的echarts图表插件,可根据实际项目需求自定义下载所需图表然后将其导入。
### 3 创建图表(以饼图为例)
### 3.1 新建图表组件
在`components`文件夹下创建`pieCharts.js`组件。引入我们刚创建的组件
> import * as echarts from "./ec-canvas/echarts";

### 3.2 懒加载渲染图表
配置我们的ec-canvas
```
config = {
usingComponents: {
"ec-canvas": "./ec-canvas/ec-canvas"
}
};
```
在render函数中使用刚导入的ec-canvas
```

```
构建refresh函数初始化图表
```
refresh(data) {
this.Chart.init((canvas, width, height) => {
const chart = echarts.init(canvas, null, {
width: width,
height: height
});
setChartData(chart, data);
return chart;
});
}

refChart = node => (this.Chart = node);
```
配置懒加载图表
```
state = {
ec: {
lazyLoad: true
}
};
```
### 3.3 配置我们所需图表的option
这里在setChartData进行配置,并传入charts,data参数。
```

function setChartData(chart, data) {
let option = {
series : [
{
name: '访问来源',
type: 'pie',
center: ['50%', '50%'],
radius: [0, '60%'],
data: data,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
chart.setOption(option);
}
```
至此饼图已经创建完成,具体的可参考[饼图](https://github.com/WsmDyj/echarts-for-taro/blob/master/src/components/PieChart.js)

## 4 实例化图表
在需要图表的页面中导入刚创建的图表([饼图](https://github.com/WsmDyj/echarts-for-taro/blob/master/src/pages/Pie/Pie.js))
> import PieChart from "../../components/PieChart";

render函数中导入
```

```
实例化图表并传入data
```
componentDidMount() {
const chartData = [
{value:335, name:'直接访问'},
{value:310, name:'邮件营销'},
{value:234, name:'联盟广告'},
{value:135, name:'视频广告'},
{value:1548, name:'搜索引擎'}
];
this.pieChart.refresh(chartData);
}
refPieChart = (node) => this.pieChart = node
```
至此饼图已经创建完成,饼图如此其他的都是类似的。只要照着这个方式去设置option,我们就可以创建你想要的图表了。

## FAQ
### 可滑动的图表?

添加配置dataZoom可对图表进行缩放达到滑动的效果,可以参考 `pages/Move/Move` 的写法。

### 多图表结合在一起?

参见 `pages/More/More` 的例子,可以在获取数据后再初始化数据。

### 如何在一个页面中加载多个图表?

参见 `pages/Add/Add` 的例子。