vue3的echarts从后端获取数据,用于绘制图表

场景需求:后端采用flask通过pymysql从数据库获取数据,并返回给前端。前端vue3利用axios获取数据并运用到echarts绘制图表。

第一步,vue中引入echarts

首先vue下载echarts

npm install echarts

然后在main.js文件写如下代码

html 复制代码
import {createApp} from 'vue'
import App from './App.vue'
import router from "@/router/index.js"  // 导入路由
import "lib-flexible/flexible"   //导入响应式布局文件,阿里开发的flexible.js
import $ from "jquery"  //导入jQuery
import * as echarts from "echarts"

// 注册路由
const app = createApp(App)
app.use(router)
app.mount("#app")

// 图表处理
app.config.globalProperties.$echarts = echarts

主要是引入echarts,并进行配置

第二步,在任意要使用echarts的xxx.vue组件中写如下代码

html 复制代码
<script>
import axios from "axios"
import {defineComponent, toRaw} from 'vue'

export default defineComponent({
  data() {
    return {
      num: [],
    }
  },

  methods: {
    getData() {
      let arr = []
      axios.get("http://127.0.0.1:5000/").then(res => {
        arr = toRaw(res.data)
        console.log(arr)

        let myChart = this.$echarts.init(document.getElementById("myChart"));
        // 绘制图表
        console.log(newArray)
        myChart.setOption({
          tooltip: {},
          xAxis: {
            data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
          },
          yAxis: {},
          series: [
            {
              name: "销量",
              type: "bar",
              data: arr,
            },
          ]
        });
      })


    },
  },

  mounted() {
    this.getData()
  },
})

</script>

<template>
 <div id="myChart"></div>
</template>

<style scoped>

#myChart {
  width: 200px;
  height: 200px;
}
</style>

解释一下,在script代码中,分别引入axios用于从后端接受数据和引入用于绘制图表的defineComponent, toRaw。然后在data中定义从后端接受数据的变量,我这里定义了一个num。需要根据后端返回的数据类型在data定义不同的变量来接受存储。

然后定义一个接受数据并绘图的函数getData(),首先定义一个arr数组来存储接收到的数据(vue中echarts使用规定的,不能直接用this),然后通过toRow()方法来把接收的后端数据存储到arr数组中。然后下面的代码就是定义了一个图表,在data部分用arr来表示图表数据。

可以看看console打印的

相关推荐
小吕学编程28 分钟前
Jackson使用详解
java·javascript·数据库·json
霸王蟹30 分钟前
React中useState中更新是同步的还是异步的?
前端·javascript·笔记·学习·react.js·前端框架
霸王蟹32 分钟前
React Hooks 必须在组件最顶层调用的原因解析
前端·javascript·笔记·学习·react.js
专注VB编程开发20年39 分钟前
asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
服务器·前端·asp.net
爱分享的程序员1 小时前
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
前端
听吉米讲故事1 小时前
Slidev集成Chart.js:专业数据可视化演示文稿优化指南
javascript·信息可视化·数据分析
菥菥爱嘻嘻2 小时前
JS手写代码篇---手写 new 操作符
开发语言·javascript·原型模式
隐含2 小时前
webpack打包,把png,jpg等文件按照在src目录结构下的存储方式打包出来。解决同一命名的图片资源在打包之后,重复命名的图片就剩下一个图片了。
前端·webpack·node.js
lightYouUp2 小时前
windows系统中下载好node无法使用npm
前端·npm·node.js
Dontla2 小时前
npm cross-env工具包介绍(跨平台环境变量设置工具)
前端·npm·node.js