uniapp+vue3+echarts编写微信小程序

uniapp+vue3+echarts编写微信小程序

记录一下自己uniapp使用echarts开发图表,之前网上找了很多,本以为应该是挺常见的使用方式,没想到引入之路居然这么坎坷,在Dcloud插件市场,使用最多的:echarts-for-wx 但是很可惜并不兼容vue3,所以我在全平台兼容的插件中找到该插件echarts,根据指南以及自己在网上找的方法,最后导入成功,实现图表,我做一下完整步骤以及示例代码,希望可以帮助同样经历的伙伴


文章目录

  • uniapp+vue3+echarts编写微信小程序
  • [1. 项目引入](#1. 项目引入)
      • [1.1 项目搭建](#1.1 项目搭建)
      • [1.2 插件相关](#1.2 插件相关)
      • [1.3 uni_modules方式引入](#1.3 uni_modules方式引入)
      • [1.4 vue文件使用](#1.4 vue文件使用)
  • [2. 完整示例代码](#2. 完整示例代码)
      • [2.1 vue项目代码](#2.1 vue项目代码)
  • [3. 其他](#3. 其他)
      • [3.1 更多示例](#3.1 更多示例)
      • [3.2 定制echarts.js文件](#3.2 定制echarts.js文件)

1. 项目引入

1.1 项目搭建

本文主要重点叙述怎么实现echarts在uniapp项目中展示,但是排除由于项目中结构或者其它问题导致的引入不成功,我把我创建项目的流程放一下,引入方式就在这项目中:使用uniapp编写微信小程序

1.2 插件相关

Dcloud插件市场:echarts

插件的官网地址:Lime Ui (作者有点随性)

插件的gitee地址:lime-echart

1.3 uni_modules方式引入

直接在gitee地址直接将整个项目下载下来,复制到项目文件中uni_modules(如果没有就自己手动新建一个)文件下,这样在项目的vue文件中直接引用即可

1.4 vue文件使用

引入echarts文件,由于vue3的vite限制不能像是vue2直接使用import导入echarts.js文件,所以需要使用require()方式

【dom层】

html 复制代码
   <view style="width:750rpx; height:750rpx">
      <l-echart ref="chartRef"></l-echart>
    </view>

【逻辑层】

javascript 复制代码
<script setup>
import { ref, onMounted } from 'vue'
const echarts = require('../../uni_modules/lime-echart/static/echarts.min')

const chartRef = ref(null)
const option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  },
  yAxis: {
    type: 'value',
  },
  series: [
    {
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: 'line',
      areaStyle: {},
    },
  ],
}

onMounted(() => {
  // 组件能被调用必须是组件的节点已经被渲染到页面上
  setTimeout(async () => {
    if (!chartRef.value) return
    const myChart = await chartRef.value.init(echarts)
    myChart.setOption(option)
  }, 300)
})
</script>

2. 完整示例代码

2.1 vue项目代码

javascript 复制代码
<template>
  <view style="width:750rpx; height:750rpx">
    <l-echart ref="chartRef"></l-echart>
  </view>
</template>

<script setup>
import { ref, onMounted } from 'vue'
const echarts = require('../../uni_modules/lime-echart/static/echarts.min')

const chartRef = ref(null)
const option = {
  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',
    },
  ],
}

onMounted(() => {
  // 组件能被调用必须是组件的节点已经被渲染到页面上
  setTimeout(async () => {
    if (!chartRef.value) return
    const myChart = await chartRef.value.init(echarts)
    myChart.setOption(option)
  }, 300)
})
</script>

<style lang="scss" scoped>
</style>

3. 其他

3.1 更多示例

地址:Lime Ui

3.2 定制echarts.js文件

由于引入的插件使用的完整的echarts.js文件相对较大,而在小程序中当然是体积越小越好,就自己可以定制下载

在线定制

只需要下载这几个选项就可以:

下载后替换地址:

原文件大概1000k左右,最后将整个插件放在资源绑定资源中

相关推荐
2501_9159214316 小时前
iOS 性能分析工具全景解析,构建从底层诊断到真机监控的多层级性能分析体系
android·ios·小程序·https·uni-app·iphone·webview
2501_9159090616 小时前
如何防止 IPA 被反编译,从攻防视角构建一套真正有效的 iOS 成品保护体系
android·macos·ios·小程序·uni-app·cocoa·iphone
毕设源码-邱学长17 小时前
【开题答辩全过程】以 基于微信小程序的社区老年人活动中心信息管理系统的设计与实现 为例,包含答辩的问题和答案
微信小程序·小程序
咨询QQ2769988517 小时前
C# 开发西门子 PLC 通信程序:开启 S7 系列产品通信之旅
echarts
2501_9160074717 小时前
专业的 IPA 处理工具 构建可维护、可回滚的 iOS 成品加工与加固流水线
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者817 小时前
Charles抓包工具怎么用 Charles抓包教程、网络调试技巧与HTTPS配置全流程
网络·ios·小程序·https·uni-app·php·webview
万岳科技程序员小金17 小时前
在线教育系统源码选型对比:PHP、Java、Flutter、UniApp谁更适合?
java·uni-app·php·软件开发·在线教育系统源码·教育app开发·教育软件开发
不会写DN17 小时前
如何实现UniApp登录拦截?
前端·javascript·vue.js·typescript·uni-app·vue
李慕婉学姐17 小时前
基于微信小程序的康复医疗问诊服务平台5855qb95(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·微信小程序
项目題供诗17 小时前
微信小程序黑马优购(项目)(六)
微信小程序·小程序