原生小程序使用echarts

下载

首先,下载 GitHub 上的 ecomfe/echarts-for-weixin 项目。

引入组件

拷贝 ec-canvas 目录,参考下面几个文件的写法。

json 配置如下:

复制代码
 "usingComponents": {
    "ec-canvas": "/ec-canvas/ec-canvas"
  }

wxml 中:

复制代码
<view class="ec-container">
    <ec-canvas canvas-id="echart-pie" ec="{{ec}}"></ec-canvas>
</view>

js 中:

复制代码
// home.js
import * as echarts from '../../ec-canvas/echarts';

Page({
  data: {
    // 1. 只传函数引用,不要加 ()
    ec: {
      onInit: initChart
    }
  },

  onLoad() {
    // 可以在这里发起网络请求,动态改 option
  },

  onReady() {
    // 页面首次渲染完成
  },

  onShow() { },
  onHide() { },
  onUnload() { },
  onPullDownRefresh() { },
  onReachBottom() { },

  // 右上角分享
  onShareAppMessage() {
    return {
      title: '城市销量占比',
      path: '/pages/home/home'
    };
  }
});

/* ======================================================
 * 初始化函数,由 ec-canvas 组件在渲染后自动调用
 * ====================================================== */
function initChart(canvas, width, height, dpr) {
  const chart = echarts.init(canvas, null, {
    width,
    height,
    devicePixelRatio: dpr
  });

  canvas.setChart(chart);   // 兼容 v2 组件库

  const option = {
    backgroundColor: '#ffffff',
    series: [{
      type: 'pie',
      center: ['50%', '50%'],
      radius: ['20%', '40%'],
      label: {
        fontSize: 14
      },
      data: [
        { value: 55, name: '北京' },
        { value: 20, name: '武汉' },
        { value: 10, name: '杭州' },
        { value: 20, name: '广州' },
        { value: 38, name: '上海' }
      ]
    }]
  };

  chart.setOption(option);
  return chart;   // 必须返回 chart 实例
}

scss中:

复制代码
.ec-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
}

ec-canvas {
  width: 100%;
  height: 100%;
}
相关推荐
风骏时光牛马1 小时前
生成一个移动端标题,只需要一个标题,不需要其他的任何文本。
前端
IT_陈寒1 小时前
Redis雪崩把我坑惨了,这是5年经验的教训
前端·人工智能·后端
SameX1 小时前
HarmonyOS ArkUI List 的侧滑删除 用 ListItem 的 swipeAction + endIcon 的做法
前端
usdoc文档预览4 小时前
USDOC系列之PPT文件在线编辑-VUE前端实现在线浏览器在线编辑PPT文档
前端·vue.js·编辑器·office365·ppt在线编辑·office文件在线编辑·文件在线编辑
用户2705077725244 小时前
Agent 调工具卡住?3 种超时与取消策略实测对比
前端
LuHang5 小时前
我一行代码没写,把领导派的活做成了公司内部系统😭
前端
明月_清风5 小时前
Meta 开源了一个 AI Native 组件库:Astryx,150+ React 组件,专为 AI Agent 而设计
前端·人工智能·ai编程
用户850869276155 小时前
秒杀系统中 Shell 脚本并发控制 Bug:究竟哪里出了
前端
炫酷的大高个8 小时前
6 亿播放的闪身步,我用前端算出 15 倍重心差
前端·javascript
不可能片场8 小时前
内容运营自动化 配图折行别把词切两半
前端·electron