当前位置:   article > 正文

uniapp+vue3+ts+vite+echarts开发图表类小程序,将echarts导入项目使用的详细步骤,耗时一天终于弄好了_uniapp vue3使用echarts

uniapp vue3使用echarts

想在uniapp和vue3环境中使用echarts是一件相当前卫的事情,官方适配的还不是很好,echarts的使用插件写的是有些不太清晰的,这里我花费了一天的时间,终于将这个使用步骤搞清楚了,并且建了一个仓库,大家可以直接clone下来使用。先看一下pc端和小程序端的效果:

微信小程序和抖音小程序等都支持:

使用步骤如下

第一步:下载插件包

下载echarts插件包,并导入到项目中,然后使用插件中的组件创建容器,并导入数据就可以了。

echarts插件包地址:echarts - DCloud 插件市场

如果你是使用hbuilder写的,可以直接导入,如果你是vscode写的,就下载压缩包:

我这里将我下载好的zip包分享出来:lime-echart_0.8.1.zip - 蓝奏云

 

下载好解压然后将解压后的组件导入到项目的components下面:

并且将静态资源放到静态文件夹中:

第二步:安装echarts包

  1. pnpm add echarts
  2. -or-
  3. npm install echarts

 

第三步:在页面中导入依赖并运行

然后在页面中导入这个LEchart这个组件:

将依赖按照不同的平台区分导入到页面组件中:下面是我的页面源代码

  1. <template>
  2. <view>
  3. <view class="title">我的主页</view>
  4. <view>
  5. <LEchart class="echart" ref="chart" @finished="init"></LEchart>
  6. </view>
  7. </view>
  8. </template>
  9. <script setup>
  10. import LEchart from '@/components/l-echart/l-echart.vue'
  11. // lime-echart是一个demo的组件,用于测试组件
  12. // import LEchart from '@/components/lime-echart/lime-echart.vue'
  13. import { onMounted, reactive, ref } from "vue"
  14. // nvue 不需要引入
  15. // #ifdef VUE3
  16. // #ifdef MP
  17. // 由于vue3 使用vite 不支持umd格式的包,小程序依然可以使用,但需要使用require
  18. const echarts = require('../../static/echarts.min');
  19. // #endif
  20. // #ifndef MP
  21. // 由于 vue3 使用vite 不支持umd格式的包,故引入npm的包
  22. import * as echarts from 'echarts';
  23. // #endif
  24. // #endif
  25. let chart = ref(); // 获取dom
  26. const state = reactive({
  27. option: {},
  28. })
  29. state.option = {
  30. legend: {
  31. show: true,
  32. data: []
  33. },
  34. tooltip: {
  35. trigger: 'axis',
  36. axisPointer: {
  37. type: 'cross'
  38. }
  39. },
  40. grid: {
  41. left: '3%',
  42. right: '8%',
  43. top: '15%',
  44. bottom: '5%',
  45. containLabel: true
  46. },
  47. xAxis: {
  48. type: 'category',
  49. data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 4, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
  50. axisLabel: {
  51. // inside: true,
  52. // color: '#fff'
  53. },
  54. axisTick: {
  55. show: false
  56. },
  57. axisLine: {
  58. show: true,
  59. lineStyle: {
  60. color: '#83bff6'
  61. }
  62. },
  63. z: 10
  64. },
  65. yAxis: {
  66. type: 'value',
  67. axisLine: {
  68. show: true,
  69. lineStyle: {
  70. color: '#83bff6'
  71. }
  72. },
  73. axisTick: {
  74. show: false
  75. },
  76. // axisLabel: {
  77. //   color: '#999'
  78. // },
  79. splitLine: {
  80. show: true,
  81. lineStyle: {
  82. type: 'dashed',
  83. color: '#83bff6'
  84. }
  85. }
  86. },
  87. series: [
  88. {
  89. data: [100, 110, 113, 126, 143, 158, 165, 167, 152, 102, ,],
  90. type: "bar",
  91. itemStyle: {
  92. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  93. { offset: 0, color: '#83bff6' },
  94. { offset: 0.5, color: '#188df0' },
  95. { offset: 1, color: '#188df0' }
  96. ])
  97. },
  98. emphasis: {
  99. itemStyle: {
  100. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  101. { offset: 0, color: '#2378f7' },
  102. { offset: 0.7, color: '#2378f7' },
  103. { offset: 1, color: '#83bff6' }
  104. ])
  105. }
  106. },
  107. areaStyle: {
  108. show: true,
  109. color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  110. {
  111. offset: 0,
  112. color: '#188df0'
  113. },
  114. {
  115. offset: 1,
  116. color: '#fff'
  117. }
  118. ])
  119. },
  120. }
  121. ],
  122. color: ['#83bff6']
  123. }
  124. // 组件能被调用必须是组件的节点已经被渲染到页面上
  125. onMounted(() => {
  126. chart.value.init(echarts, chart => {
  127. chart.setOption(state.option);
  128. });
  129. })
  130. // 渲染完成
  131. const init = () => {
  132. console.log("渲染完成");
  133. }
  134. </script>
  135. <style scopedlang='scss' scoped>
  136. .echart {
  137. width: 100%;
  138. height: 300px;
  139. }
  140. .title {
  141. text-align: center;
  142. }
  143. </style>

 最后运行小程序或者h5就可以看到效果了:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/123957
推荐阅读
相关标签
  

闽ICP备14008679号