1.13.7 • Published 4 months ago

@visactor/taro-vchart v1.13.7

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

@visactor/taro-vchart

VChart 基于 Taro 封装的图表组件。

环境要求

Taro 版本: >= 3.3.17

taro 因为小版本有一些不兼容的 break change,所以尽量使用 3.3 版本

支持环境

目前组件支持的环境有:微信小程序('weapp'),字节小程序('tt'),飞书小程序('lark'),浏览器('web'),h5 移动端('h5')。

以上环境通过 type 属性进行声明,type 属性值及对应环境如下:

  • weapp 微信小程序。
  • tt 字节小程序。
  • lark 飞书小程序。
  • h5 h5 移动端环境。
  • web 浏览器环境。

跨端支持

用户如果需要跨多端支持, 需要根据 Taro.getEnv() 动态传入 type 属性.

<VChart
  type={Taro.getEnv()}
  canvasId="chartId"
  spec={spec}
  style={{ height: '100%', width: '100%' }}
  onChartInit={chart => {}}
  onChartReady={chart => {}}
  onChartUpdate={chart => {}}
/>

版本要求

  1. 字节小程序端

需要确保 Taro 版本 >= 3.3.17 (taro 因为小版本有一些不兼容的 break change,所以尽量使用 3.3 版本)

  1. 飞书小程序端

需要确保 Taro 版本 >= 3.2.0, 飞书版本 >= 3.45.0 (taro 因为小版本有一些不兼容的 break change,所以尽量使用 3.3 版本)

安装

# npm
$ npm install @visactor/taro-vchart

# yarn
$ yarn add @visactor/taro-vchart

API

图表组件使用示例如下:

import VChart from '@visactor/taro-vchart';

<VChart
  type="tt"
  spec={spec}
  canvasId="pie"
  style={{ height: '35vh', width: '100%' }}
  onChartInit={chart => {
    console.log('onChartInit');
  }}
  onChartReady={chart => {
    console.log('onChartReady');
  }}
  onChartUpdate={chart => {
    console.log('onChartUpdate');
  }}
/>;
API类型说明
typeString配置的环境,目前组件支持的环境有:字节小程序('tt'),飞书小程序('lark'),浏览器('web'),h5 移动端('h5'),如果没有声明,则会通过 Taro.getEnv() 自动获取
canvasIdString图表 id, 必确唯一
specObject图表配置项, 请参考VChart 配置项
styleObject图表容器样式
eventsObject[]事件绑定配置,具体配置为定义如下
optionsObject初始化 VChart 实例传入的额外配置项,同 VChart 实例化配置项
onChartInitFunction图表初始化完后触发的回调
onChartReadyFunction图表渲染完毕后触发的回调
onChartUpdateFunction图表更新完毕后触发的回调

事件配置

interface IEvent {
  /**
   * 事件的名称
   */
  type: EventType;
  /**
   * 事件 API 中的事件筛选配置
   */
  query?: EventQuery;
  /**
   * 事件监听函数
   */
  handler: EventCallback<EventParams>;
}
  • type 代表事件名称,支持的值详见:事件分类
  • query 事件 API 中的事件筛选配置,使用详见:事件过滤
  • handler 即事件监听函数,函数的参数类型详见:事件参数

快速上手

import React, { useState } from 'react';
import { View } from '@tarojs/components';
import VChart from '@visactor/taro-vchart';

export function Pie() {
  // 1. 准备图表配置项与数据
  const [spec, setSpec] = useState({
    data: [
      {
        id: 'data1',
        values: [
          {
            value: 335,
            name: '直接访问'
          },
          {
            value: 310,
            name: '邮件营销'
          },
          {
            value: 274,
            name: '联盟广告'
          },
          {
            value: 235,
            name: '视频广告'
          },
          {
            value: 400,
            name: '搜索引擎'
          }
        ]
      }
    ],
    type: 'pie',
    outerRadius: 0.6,
    innerRadius: 0.5,
    categoryField: 'name',
    valueField: 'value',
    legends: {
      visible: true
    }
  });

  // 向Chart组件, 传递参数.
  return (
    <View
      style={{
        border: '1px solid #eeeeee',
        width: '90vw'
      }}
    >
      <VChart
        type="tt"
        spec={spec}
        canvasId="pie"
        style={{ height: '35vh', width: '100%' }}
        onChartInit={() => {
          console.log('init pie');
        }}
        onChartReady={() => {
          console.log('ready pie');
        }}
        onChartUpdate={() => {
          console.log('update pie');
        }}
      />
    </View>
  );
}

常用示例

图表状态更新

图表内部, 监听了 spec 的变化. 当 spec 变化时, 则会基于新的 spec 更新图表。

此外用户也可以使用 VChart 实例提供的渲染接口,进行图表的渲染、更新、销毁操作(可以通过 onChartInit 接口, 获取到 VChart 实例)。

下面是 VChart 实例上提供的较常用的 API:

  • chartInstance.renderAsync() 渲染图表
  • chartInstance.release() 销毁图表
  • chartInstance.updateSpec() 基于 Spec 更新图表
  • chartInstance.updateData() 基于数据更新图表

详细使用方法请参考:VChart API

示例

兼容 React 的状态管理方式. 通过 setState 更新配置项, 图表即可重绘.

import React, { useEffect, useState } from 'react';
import { View } from '@tarojs/components';
import VChart from '@visactor/taro-vchart';

export function Pie() {
  const [spec, setSpec] = useState({
    data: [
      {
        id: 'data1',
        values: [
          {
            value: 335,
            name: '直接访问'
          },
          {
            value: 310,
            name: '邮件营销'
          },
          {
            value: 274,
            name: '联盟广告'
          },
          {
            value: 235,
            name: '视频广告'
          },
          {
            value: 400,
            name: '搜索引擎'
          }
        ]
      }
    ],
    type: 'pie',
    outerRadius: 0.6,
    innerRadius: 0.5,
    categoryField: 'name',
    valueField: 'value',
    legends: {
      visible: true
    }
  });

  useEffect(() => {
    setTimeout(() => {
      setSpec({
        data: [
          {
            id: 'data1',
            values: [
              {
                value: 335,
                name: '直接访问'
              },
              {
                value: 310,
                name: '邮件营销'
              }
            ]
          }
        ],
        type: 'pie',
        outerRadius: 0.6,
        innerRadius: 0.5,
        categoryField: 'name',
        valueField: 'value',
        legends: {
          visible: true
        }
      });
    }, 3000);
  }, []);

  return (
    <View
      style={{
        border: '1px solid #eeeeee',
        width: '90vw'
      }}
    >
      <VChart
        type="tt"
        spec={spec}
        canvasId="pie"
        style={{ height: '35vh', width: '100%' }}
        onChartInit={() => {
          console.log('init pie');
        }}
        onChartReady={() => {
          console.log('ready pie');
        }}
        onChartUpdate={() => {
          console.log('update pie');
        }}
      />
    </View>
  );
}

如何开发

# 因为 taro-vchart 依赖 vchart 的编译结果,所以先要运行如下命令
$ rush run -p @visactor/vchart -s build:es5

# 运行 lark 小程序
$ rush run -p @visactor/taro-vchart -s dev:lark


# 运行微信小程序
$ rush run -p @visactor/taro-vchart -s dev:wx

然后使用飞书开发者工具导入 packages/taro-vchart/dist/lark 或者 packages/taro-vchart/dist/weapp 目录即可。

1.13.7

4 months ago

2.0.0-alpha.0

4 months ago

1.13.6

4 months ago

1.13.5-alpha.11

4 months ago

1.13.7-alpha.0

4 months ago

1.13.5-alpha.10

5 months ago

1.13.6-alpha.0

5 months ago

1.13.5

5 months ago

1.13.5-vstory.3

6 months ago

1.13.5-alpha.6

5 months ago

1.13.5-alpha.5

5 months ago

1.13.5-alpha.4

5 months ago

1.13.5-alpha.3

5 months ago

1.13.5-alpha.9

5 months ago

1.13.5-alpha.8

5 months ago

1.13.5-alpha.7

5 months ago

1.15.5-alpha.8

5 months ago

1.13.5-vstory.2

6 months ago

1.13.5-alpha.2

6 months ago

1.13.5-alpha.1

6 months ago

1.13.5-alpha.0

6 months ago

1.12.18-alpha.0

6 months ago

1.13.3-alpha.10

6 months ago

1.13.4-alpha.0

6 months ago

1.13.3-alpha.9

6 months ago

1.13.4

6 months ago

1.13.5-vstory.1

6 months ago

1.12.19

6 months ago

1.13.3

6 months ago

1.13.3-alpha.7

6 months ago

1.13.3-alpha.8

6 months ago

1.12.19-alpha.0

6 months ago

1.11.15-alpha.5

6 months ago

1.13.3-vstory.3

6 months ago

1.13.3-alpha.5

6 months ago

1.13.3-alpha.6

6 months ago

1.13.3-alpha.1

6 months ago

1.13.3-alpha.2

6 months ago

1.13.3-alpha.3

6 months ago

1.13.3-alpha.4

6 months ago

1.13.2

7 months ago

1.13.3-alpha.0

7 months ago

1.13.2-vstory.2

7 months ago

1.13.2-vstory.1

7 months ago

1.12.18

7 months ago

1.13.1-alpha.2

7 months ago

1.13.1

7 months ago

1.13.1-vstory.2

7 months ago

1.13.1-vstory.3

7 months ago

1.12.16

7 months ago

1.12.17

7 months ago

1.12.7-alpha.0

7 months ago

1.13.1-alpha.1

7 months ago

1.13.1-vstory.1

7 months ago

1.12.16-alpha.0

7 months ago

1.12.15-alpha.0

7 months ago

1.13.1-alpha.0

7 months ago

1.13.0

7 months ago

1.12.15

7 months ago

1.12.14

7 months ago

1.12.4-alpha.2

7 months ago

1.12.14-alpha.0

8 months ago

1.12.13

8 months ago

1.12.12-alpha.1

8 months ago

1.12.12-alpha.0

8 months ago

1.12.11-vstory.1

8 months ago

1.12.12

8 months ago

1.12.11

8 months ago

0.14.14-vstory.1

8 months ago

1.12.10-alpha.6

8 months ago

1.12.10-alpha.7

8 months ago

1.12.10-alpha.3

8 months ago

1.12.10-alpha.4

8 months ago

1.12.10-alpha.5

8 months ago

1.12.10-alpha.2

8 months ago

1.12.10-alpha.0

9 months ago

1.12.10

8 months ago

1.12.8-hotfix.0

9 months ago

1.12.9

9 months ago

1.12.9-alpha.2

9 months ago

1.12.9-alpha.3

9 months ago

1.12.9-alpha.1

9 months ago

1.12.9-alpha.0

9 months ago

1.12.8

9 months ago

1.12.7

10 months ago

1.11.15-alpha.4

10 months ago

1.12.2-alpha.9

10 months ago

1.12.2-alpha.3

10 months ago

1.12.2-alpha.0

11 months ago

1.12.2-alpha.2

10 months ago

1.12.2-alpha.1

11 months ago

1.12.3

10 months ago

1.12.2

10 months ago

1.12.6

10 months ago

1.12.5

10 months ago

1.12.4

10 months ago

1.12.3-alpha.1

10 months ago

1.12.1-alpha.1

10 months ago

1.11.15-alpha.0

10 months ago

1.11.15-alpha.1

10 months ago

1.11.15-alpha.2

10 months ago

1.11.15-alpha.3

10 months ago

1.12.4-alpha.0

10 months ago

1.12.4-alpha.1

10 months ago

1.11.0-hotfix.0

10 months ago

1.10.6-beta.3

11 months ago

1.11.14

11 months ago

1.11.13-alpha.1

11 months ago

1.11.13-alpha.2

11 months ago

1.10.6-beta.2

11 months ago

1.11.13

11 months ago

1.12.1

11 months ago

1.11.13-alpha.0

11 months ago

1.10.6-beta.1

11 months ago

1.12.0

11 months ago

1.12.1-alpha.0

11 months ago

1.11.12

11 months ago

1.12.0-alpha.12

11 months ago

1.11.12-alpha.0

11 months ago

1.12.0-alpha.10

11 months ago

1.12.0-alpha.11

11 months ago

1.11.11

11 months ago

1.11.11-alpha.0

12 months ago

1.12.0-alpha.9

12 months ago

1.12.0-alpha.7

12 months ago

1.12.0-alpha.8

12 months ago

1.9.4-alpha.4

12 months ago

1.11.10

12 months ago

1.11.10-alpha.3

12 months ago

1.12.0-alpha.6

12 months ago

1.11.10-alpha.1

12 months ago

1.11.5-alpha.0

1 year ago

1.11.4

1 year ago

1.11.8

1 year ago

0.11.6-alpha.1

1 year ago

1.11.7

1 year ago

0.11.6-alpha.2

1 year ago

1.11.6

1 year ago

1.11.5

1 year ago

1.11.9

12 months ago

1.12.0-alpha.4

1 year ago

1.12.0-alpha.1

1 year ago

1.12.0-alpha.5

12 months ago

1.11.10-alpha.0

12 months ago

1.11.6-alpha.0

1 year ago

1.11.6-alpha.1

1 year ago

1.11.6-alpha.3

1 year ago

1.11.6-alpha.4

1 year ago

1.11.6-alpha.5

1 year ago

1.11.6-alpha.6

1 year ago

1.11.7-alpha.3

1 year ago

1.11.7-alpha.0

1 year ago

1.11.7-alpha.1

1 year ago

1.11.7-alpha.2

1 year ago

1.11.7-alpha.9

1 year ago

1.11.3

1 year ago

1.11.3-alpha.0

1 year ago

1.11.2

1 year ago

1.11.2-alpha.2

1 year ago

1.11.2-alpha.3

1 year ago

1.11.2-alpha.0

1 year ago

1.11.2-alpha.1

1 year ago

1.11.2-alpha.4

1 year ago

1.11.2-alpha.5

1 year ago

1.12.0-alpha.0

1 year ago

1.11.1

1 year ago

1.11.1-alpha.6

1 year ago

1.11.1-alpha.4

1 year ago

1.11.1-alpha.5

1 year ago

1.11.1-alpha.3

1 year ago

1.11.1-alpha.2

1 year ago

1.11.1-alpha.1

1 year ago

1.11.1-alpha.0

1 year ago

1.10.7-alpha.0

1 year ago

1.10.6

1 year ago

1.11.0

1 year ago

1.11.0-alpha.3

1 year ago

1.10.6-alpha.2

1 year ago

1.10.6-alpha.0

1 year ago

1.10.6-alpha.1

1 year ago

1.10.5

1 year ago

1.10.5-alpha.1

1 year ago

1.9.4-alpha.3

1 year ago

1.10.4

1 year ago

1.11.0-alpha.2

1 year ago

1.10.3

1 year ago

1.9.4-alpha.2

1 year ago

1.10.2

1 year ago

1.10.3-alpha.0

1 year ago

1.11.0-alpha.1

1 year ago

1.10.2-alpha.4

1 year ago

1.11.0-alpha.0

1 year ago

1.10.2-alpha.3

1 year ago

1.10.2-alpha.2

1 year ago

1.10.2-alpha.1

1 year ago

1.10.2-alpha.0

1 year ago

1.8.5-hotfix.5

1 year ago

1.8.5-hotfix.4

1 year ago

1.10.1

1 year ago

1.10.0-alpha.9

1 year ago

1.10.0

1 year ago

1.10.0-alpha.10

1 year ago

1.9.7

1 year ago

1.10.1-alpha.1

1 year ago

1.10.1-alpha.0

1 year ago

1.8.5-hotfix.3

1 year ago

1.9.6-alpha.7

1 year ago

1.9.6-alpha.8

1 year ago

1.9.6-alpha.6

1 year ago

1.8.5-hotfix.2

1 year ago

1.10.0-alpha.6

1 year ago

1.10.0-alpha.7

1 year ago

1.10.0-alpha.8

1 year ago

1.9.6-alpha.3

1 year ago

1.9.6

1 year ago

1.9.6-alpha.4

1 year ago

1.9.6-alpha.5

1 year ago

1.10.0-alpha.5

1 year ago

1.9.6-alpha.2

1 year ago

1.9.6-alpha.1

1 year ago

1.9.6-alpha.0

1 year ago

1.9.5

1 year ago

1.10.0-alpha.4

1 year ago

1.9.5-alpha.0

1 year ago

1.9.4

1 year ago

1.9.4-alpha.1

1 year ago

0.10.0-alpha.3

1 year ago

1.9.3-hotfix.0

1 year ago

1.9.3-alpha.2

1 year ago

0.10.0-alpha.2

1 year ago

1.9.4-alpha.0

1 year ago

1.10.0-alpha.1

1 year ago

1.9.3-alpha.0

1 year ago

1.9.3-alpha.1

1 year ago

1.9.3

1 year ago

1.10.0-alpha.0

1 year ago

1.9.2

1 year ago

1.8.11

1 year ago

1.9.1

1 year ago

1.9.1-alpha.0

1 year ago

1.9.0

1 year ago

1.9.0-alpha.3

1 year ago

1.9.0-alpha.2

1 year ago

1.8.10

1 year ago

1.8.10-alpha.0

1 year ago

1.9.0-alpha.1

1 year ago

1.8.5-hotfix.1

1 year ago

1.8.9

1 year ago

1.8.8

1 year ago

1.8.8-alpha.0

1 year ago

1.8.8-alpha.1

1 year ago

1.8.5-hotfix.0

1 year ago

1.8.7

2 years ago

1.8.7-alpha.0

2 years ago

1.8.6

2 years ago

1.8.5

2 years ago

1.8.4

2 years ago

1.6.9

2 years ago

1.8.3

2 years ago

1.8.3-alpha.0

2 years ago

1.6.8

2 years ago

1.8.2

2 years ago

1.9.0-alpha.0

2 years ago

1.8.1

2 years ago

1.8.0-beta.0

2 years ago

1.8.0

2 years ago

1.7.5

2 years ago

1.8.0-alpha.0

2 years ago

1.7.4

2 years ago

1.7.3

2 years ago

1.7.2

2 years ago

1.7.1

2 years ago

1.7.1-alpha.0

2 years ago

1.7.0

2 years ago

1.7.0-alpha.2

2 years ago

1.7.0-alpha.1

2 years ago

1.6.7

2 years ago

0.16.17-alpha.0

2 years ago

0.16.17-alpha.2

2 years ago

1.6.6

2 years ago

1.6.5

2 years ago

1.6.4

2 years ago

1.7.0-alpha.0

2 years ago

1.6.3

2 years ago

1.6.2

2 years ago

1.6.1

2 years ago

1.6.1-alpha.0

2 years ago

1.6.0-beta.0

2 years ago

1.6.0

2 years ago

1.2.2-hotfix.1

2 years ago

1.2.2-hotfix.0

2 years ago

1.5.4

2 years ago

1.5.4-alpha.0

2 years ago

1.5.3

2 years ago

1.6.0-alpha.0

2 years ago

1.5.3-alpha.0

2 years ago

1.5.2-hotfix.0

2 years ago

1.2.4

2 years ago

1.2.4-hotfix.0

2 years ago

1.5.2

2 years ago

1.3.2-hotfix.4

2 years ago

1.5.2-alpha.0

2 years ago

1.5.1

2 years ago

1.5.1-alpha.6

2 years ago

1.5.1-alpha.5

2 years ago

1.4.3

2 years ago

1.3.2-hotfix.3

2 years ago

1.3.2-hotfix.2

2 years ago

1.5.1-alpha.4

2 years ago

1.4.2

2 years ago

1.5.1-alpha.3

2 years ago

1.5.1-alpha.2

2 years ago

1.3.2-hotfix.1

2 years ago

1.3.2-hotfix.0

2 years ago

1.5.1-alpha.1

2 years ago

1.5.1-alpha.0

2 years ago

1.4.2-alpha.0

2 years ago

1.4.2-beta.1

2 years ago

1.4.2-beta.0

2 years ago

1.4.1

2 years ago

1.4.1-alpha.1

2 years ago

1.4.1-alpha.0

2 years ago

1.5.0

2 years ago

1.4.0

2 years ago

1.4.0-beta.2

2 years ago

1.4.0-beta.1

2 years ago

1.4.0-alpha.7

2 years ago

1.3.4

2 years ago

1.3.3

2 years ago

1.4.0-alpha.6

2 years ago

1.4.0-alpha.5

2 years ago

1.3.2

2 years ago

1.4.0-alpha.4

2 years ago

1.4.0-alpha.3

2 years ago

1.4.0-alpha.2

2 years ago

1.3.1

2 years ago

1.3.1-beta.1

2 years ago

1.3.1-alpha.0

2 years ago

1.3.1-beta.0

2 years ago

1.3.0

2 years ago

1.3.0-beta.11

2 years ago

1.3.0-beta.10

2 years ago

1.3.0-beta.9

2 years ago

1.3.0-beta.8

2 years ago

1.2.3

2 years ago

1.3.0-beta.7

2 years ago

1.2.3-beta.1

2 years ago

1.2.3-beta.0

2 years ago

1.3.0-beta.6

2 years ago

1.2.2

2 years ago

1.2.2-beta.2

2 years ago

1.2.2-beta.1

2 years ago

1.2.2-beta.5

2 years ago

1.2.2-beta.4

2 years ago

1.2.2-alpha.0

2 years ago

1.2.2-beta.3

2 years ago

1.3.0-beta.2

2 years ago

1.2.1

2 years ago

1.2.1-beta.1

2 years ago

1.2.1-alpha.3

2 years ago

1.2.1-alpha.2

2 years ago

1.2.1-alpha.1

2 years ago

1.2.1-alpha.0

2 years ago

1.2.0

2 years ago

1.2.0-beta.7

2 years ago

1.2.0-beta.6

2 years ago

1.2.0-beta.5

2 years ago

1.1.4-beta.1

2 years ago

1.2.0-beta.4

2 years ago

1.1.3

2 years ago

1.1.3-beta.1

2 years ago

1.2.0-beta.3

2 years ago

1.2.0-beta.2

2 years ago

1.1.2

2 years ago

1.2.0-beta.1

2 years ago

1.1.1

2 years ago

1.1.1-beta.1

2 years ago

1.1.0

2 years ago

1.1.0-beta.10

2 years ago

1.1.0-beta.9

2 years ago

1.1.0-beta.8

2 years ago

1.1.0-beta.7

2 years ago

1.1.0-beta.6

2 years ago

1.1.0-beta.5

2 years ago

1.1.0-beta.4

2 years ago

1.1.0-beta.3

2 years ago

1.1.0-beta.2

2 years ago

0.2.0-alpha.2

2 years ago

0.2.0-alpha.1

2 years ago

0.2.0-alpha.0

2 years ago