【微信小程序】实现引入 Echarts 并实现更新数据

0. 先言

建议多阅读其他相关的文章,毕竟微信小程序的坑蛮多的。

1. 引入依赖

首先需要使用 echarts-for-weixi 项目,下载并解压到目录。

将其项目下的 ec-canvas 目录复制到 components 目录下。

在 pages/demo/demo.json 下引入组件

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

2. 代码部分

布局文件,没什么多说的。

wxml 复制代码
<view class="container">
  <ec-canvas 
    id="dom-chart" 
    canvas-id="chart" 
    ec="{{ec}}"></ec-canvas>
</view>

必须配置宽高,不然不显示。

wxss 复制代码
.container {
  width: 100vw;
  min-height: 100vh;
}

#dom-chart {
  width: 100%;
  height: 200px;
}

关键代码部分(包含更新图标数据示例)

js 复制代码
// 1. 引入依赖
import * as echarts from '../../components/ec-canvas/echarts';

Page({
  data: {
    ec: {
      onInit: null
    }
  },

  chart: null,
  chartData: [
    { name: '参数1', value: 1 },
    { name: '参数2', value: 2 }
  ],

  onLoad() {
    this.initChart()
  },

  // 初始化图表
  initChart() {
    this.setData({
      'ec.onInit': (canvas, width, height, dpr) => {
        const chart = echarts.init(canvas, null, {
          width,
          height,
          devicePixelRatio: dpr
        })
        canvas.setChart(chart)

        this.chart = chart

        chart.setOption(this.getOption())

        // 初始化后再更新一次数据
        this.addData({ name: '参数3', value: 3 })

        return chart
      }
    })
  },

  // 统一的 option 生成方法
  getOption() {
    return {
      tooltip: {
        trigger: 'item'
      },
      series: [
        {
          type: 'pie',
          radius: ['40%', '70%'],
          data: this.chartData
        }
      ]
    }
  },

  // 添加数据并刷新图表
  addData(item) {
    if (!this.chart) return

    this.chartData.push(item)

    this.chart.setOption({
      series: [
        {
          data: this.chartData
        }
      ]
    })
  },

  onUnload() {
    this.chart?.dispose()
    this.chart = null
  }
})

结束。

相关推荐
Q26433650231 天前
【有源码】基于uni-app的旅游行程规划小程序-基于微信小程序的智慧文旅综合服务平台
java·微信小程序·小程序·uni-app·毕业设计·springboot·源代码
网硕互联的小客服1 天前
微信小程序多种跳转页面方式教学
微信小程序·小程序·notepad++
m0_462803882 天前
会议签到里,手写签名怎样从“额外动作“变成流程环节
微信小程序
醒目802 天前
从图像到拼豆图纸:像素化生成与色板匹配技术实践
微信小程序
愚公搬代码3 天前
【愚公系列】《微信小程序项目实战(AI编程+视频图解)》002-一张新地图:AI创业的核心分析框架
人工智能·微信小程序·ai编程
ZeroNews内网穿透3 天前
企业内网穿透别再用随机域名!自有域名实现 OA/ERP 公网安全访问
微信小程序·内网穿透·erp·zeronews·运维实战·企业oa·自有域名
现任明教教主~4 天前
运营级多门店洗车贴膜汽车在线核销保养服务系统洗车预约洗车系统消费分佣扫码核销系统
微信小程序·小程序·汽车
陪我去看海4 天前
被要求猛出小程序,做了这个多平台多环境的部署替我承受压力
前端·微信小程序·抖音小程序
無名路人4 天前
小程序点餐页吸顶滚动之分类按需加载,上划切换
前端·vue.js·微信小程序
用户788477316344 天前
一个门店预约小程序,真正难的不是页面,是这 4 个后端接口
微信小程序