Taro 中 echarts 图表使用

1 下载 echarts4taro3

javascript 复制代码
yarn add echarts4taro3 或
pnpm add echarts4taro3 或
npm i echarts4taro3 --save

2 图表初始化需要先加载echarts模块

javascript 复制代码
import * as echarts from "echarts4taro3/lib/assets/echarts"; // 这里用了内置的,也可以用自定义的 echarts.js
import { EChart ,loadEcharts } from "echarts4taro3";

如果图表较多,建议放在app.ts里先引入

javascript 复制代码
// app.ts

import { createApp } from 'vue'

import './app.less'
import * as echarts from "echarts4taro3/lib/assets/echarts"; // 这里用了内置的,也可以用自定义的 echarts.js
import { EChart ,loadEcharts } from "echarts4taro3";

const App = createApp({
  onShow(options) {
  },
  created() {
    loadEcharts(echarts);
  },
  // 入口组件不需要实现 render 方法,即使实现了也会被 taro 所覆盖
})

export default App

3 页面使用

css 复制代码
index.less

.bar-chart {
  width: 100%;
  height: 100vh;
}
javascript 复制代码
<template>
  <view class="bar-chart">
    <EChart ref="canvas" canvas-id="bar-canvas" />
  </view>
</template>

<script setup>
import Taro from "@tarojs/taro";
import "./index.less";
import { EChart } from "echarts4taro3";
import { onMounted, ref } from "vue";

const canvas = ref(null);

onMounted(() => {
  const echartComponentInstance = canvas.value;
  const option = {
    tooltip: {
      trigger: "axis",
      axisPointer: {
        // 坐标轴指示器,坐标轴触发有效
        type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
      }
    },
    xAxis: {
      type: "category",
      data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
    },
    yAxis: {
      type: "value"
    },
    series: [
      {
        data: [120, 200, 150, 80, 70, 110, 130],
        type: "bar"
      }
    ]
  };

  Taro.nextTick(() => {
    echartComponentInstance.refresh(option);
  });
});
</script>

4 效果

需要注意的是taro4 生成的项目使用vite发布成小程序有问题,我这边选择的是webpack

微信小程序

h5

相关推荐
C_心欲无痕7 分钟前
nodejs - pnpm解决幽灵依赖
前端·缓存·npm·node.js
二等饼干~za89866813 分钟前
GEO优化---关键词搜索排名源码开发思路分享
大数据·前端·网络·数据库·django
韩曙亮17 分钟前
【Web APIs】移动端轮播图案例 ( 轮播图自动播放 | 设置无缝衔接滑动 | 手指滑动轮播图 | 完整代码示例 )
前端·javascript·css·html·轮播图·移动端·web apis
犬大犬小23 分钟前
Web 渗透:如何绕过403 Forbidden? Part I
前端·安全性测试·web 安全
AI前端老薛35 分钟前
面试:了解闭包吗?
前端
xu_duo_i1 小时前
vue3+element-plus图片上传,前端压缩(纯函数,无插件)
前端·javascript·vue.js
林恒smileZAZ1 小时前
在 Web 前端实现流式 TTS 播放
前端
睡不着的可乐1 小时前
前端优化:requestAnimationFrame vs setInterval 性能对比与实战
前端
C_心欲无痕1 小时前
nodejs - npm serve
前端·npm·node.js
释怀不想释怀1 小时前
web前端crud (修改,删除)
前端