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

相关推荐
三月七(爱看动漫的程序员)3 小时前
模型/O功能之提示词模板
java·前端·javascript·人工智能·语言模型·langchain·prompt
LCG元3 小时前
Vue.js组件开发-实现左侧浮动菜单跟随页面滚动
前端·javascript·vue.js
山海青风4 小时前
OpenAI 实战进阶教程 - 第四节: 结合 Web 服务:构建 Flask API 网关
前端·人工智能·python·chatgpt·flask
关山月5 小时前
JS开发者应该了解的函数方法
前端
engchina5 小时前
深入理解 `box-sizing: border-box;`:CSS 布局的利器
前端·css·css3
cmdyu_6 小时前
前端架构师的职责之我见
前端
小郑T_T6 小时前
浏览器模块化难题
前端·javascript
浪遏7 小时前
大文件上传👈 | React + NestJs |分片、断点续传、秒传🚀 , 你是否知道 ???
前端·面试·nestjs
dal118网工任子仪7 小时前
91,【7】 攻防世界 web fileclude
android·前端
微光守望者7 小时前
Node.js常用知识
前端·javascript·node.js