logo

F2

  • 教程
  • 组件API
  • 图表示例
  • 所有产品antv logo arrow
  • 5.0.3
  • 快速上手
  • 图表组成
  • 图形语法
  • 数据 - Data
  • 度量 - Scale
  • 坐标系 - Coordinate
  • 图形标签 - Shape
  • 绘图属性 - Style
  • 动画属性 - Animation
  • 事件属性 - Event
  • 图形使用 - JSX
  • 组件介绍 - Component
  • 多端/框架 - Framework
    • 多端适配
    • 如何在 React 中使用
    • 如何在 Vue 中使用
    • 如何在小程序中使用
    • 如何在 Node.js 中使用
    • 配置 jsx transform
    • 使用 svg 渲染
  • 进阶 - Advanced
    • 自定义 View
  • 常见问题 - Question
    • 和 React 同时使用时,TS 类型报错

如何在小程序中使用

上一篇
如何在 Vue 中使用
下一篇
如何在 Node.js 中使用

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

前置配置

1. 安装 F2 依赖

# 安装 F2 依赖
npm i @antv/f2 --save
# 安装小程序组件
npm i @antv/f-my --save
# 微信小程序
npm i @antv/f-wx --save

2. 配置 jsx transform

如果项目已有 jsx 编译,可忽略此步骤

详见:配置 jsx transform

3. 添加 jsx 编译

package.json

{
"scripts": {
"beforeCompile": "babel pages --out-dir pages --only **/*.jsx"
}
}

支付宝小程序

mini.project.json

{
"scripts": {
"beforeCompile": "npm run beforeCompile"
}
}

页面使用

page.json

{
"usingComponents": {
"f2": "@antv/f-my"
}
}

page.axml

<view class="container">
<f2 onRender="onRenderChart"></f2>
</view>

page.acss

.container {
width: 100%;
height: 600rpx;
}

chart.jsx

import { Chart, Interval, Axis } from '@antv/f2';
export default (props) => {
const { data } = props;
return (
<Chart data={data}>
<Axis field="genre" />
<Axis field="sold" />
<Interval x="genre" y="sold" color="genre" />
</Chart>
);
};

page.jsx

import Chart from './chart';
const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 },
];
Page({
data: {},
onRenderChart() {
return <Chart data={data} />;
},
});

如果不想在入口文件写 jsx 语法,可以使用下面方式

page.js

// 通过 createElement 方式创建
import { createElement } from '@antv/f2';
import Chart from './chart';
const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 },
];
Page({
data: {},
onRenderChart() {
return createElement(Chart, {
data: data,
});
},
});

demo

  • 参考示例:https://github.com/antvis/FEngine/tree/master/packages/f-my/examples

微信小程序

页面使用

page.json

{
"usingComponents": {
"f2": "@antv/f-wx"
}
}

page.wxml

<view class="container">
<f2 onRender="" />
</view>

page.wxss

.container {
width: 100%;
height: 600rpx;
}

chart.jsx

import { Chart, Interval, Axis } from '@antv/f2';
export default (props) => {
const { data } = props;
return (
<Chart data={data}>
<Axis field="genre" />
<Axis field="sold" />
<Interval x="genre" y="sold" color="genre" />
</Chart>
);
};

page.jsx

import Chart from './chart';
const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 },
];
Page({
data: {
onRenderChart() {
return <Chart data={data} />;
},
},
});

如果不想在入口文件写 jsx 语法,可以使用下面方式

page.js

import { createElement } from '@antv/f2';
const data = [
{ genre: 'Sports', sold: 275 },
{ genre: 'Strategy', sold: 115 },
{ genre: 'Action', sold: 120 },
{ genre: 'Shooter', sold: 350 },
{ genre: 'Other', sold: 150 },
];
Page({
data: {
onRenderChart() {
return createElement(Chart, {
data: data,
});
},
},
});

demo

  • 参考示例:https://github.com/antvis/FEngine/tree/master/packages/f-wx/examples