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

相关推荐
joan_854 小时前
input禁止自动填充
前端·elementui·vue
林间风雨4 小时前
layui 2.9.16 版本,根据字段字数最大数,表格自适应字段宽度
前端·javascript·layui
木子啊4 小时前
HTML防窥技巧:让源码难以偷窥
前端·html·查看源码·禁止查看源码
梦6504 小时前
前端路由守卫:掌控页面跳转的 “守门人”
前端
jiayong235 小时前
前端性能优化系列(二):请求优化策略
前端·性能优化
H_ZMY5 小时前
前端实现 HTTPS 强制跳转与移动端域名自动适配
前端·网络协议·https
We་ct5 小时前
LeetCode 42. 接雨水:双指针解法深度剖析与全方法汇总
前端·算法·leetcode·typescript
灰海5 小时前
vue实现即开即用的AI对话打字机效果
前端·javascript·vue.js·打字机
智绘前端5 小时前
React 组件开发速查卡
前端·react.js·前端框架