Vue+Echarts 项目演练(中)后台数据接口的创建

全局引用Echarts与axios

后台接口创建express路由

api接口数据创建

解决跨域问题

全局引用Echartsaxios

        vue3.0的挂载方式:使用Provide/Inject依赖注入,将替代vue2中在原型链上挂载一些属性在app.vue中使用provider来给后代们提供数据

<script>
import { provide } from "vue"; //导入vue解构出Provider
import * as echarts from "echarts"; //引入echarts

export default {
  setup(){//启动方法
    //provider("名字","传递的内容")
    provide("echarts",echarts) 
  }
}
</script>

         在主页面中使用接受函数

import {inject} from "vue"; //引入inject接受数据
export default {
  setup(){//启动方法
    //inject("名字")
    let $echarts = inject("echarts")
    console.log($echarts)//查看打印所有属性
    inject()
  },
}

         查看输出的$echarts的所有属性

        axios使用于上面相同方式

        axios的下载:npm install --save axios

         注入axios

<script>
import { provide } from "vue"; //导入vue解构出Provider
import * as echarts from "echarts"; //引入echarts
import * as axios from "axios";

export default {
  setup(){//启动方法
    //provider("名字","传递的内容")
    provide("echarts",echarts) 
    provide("axios",axios)
  }
}
</script>

         主页面定义变量接收

let $http = inject("axios")

        查看输出的$http的所有属性

 后台接口创建express路由

        创建目录server 在目录下创建index文件与router文件夹

         新建对应路由,在fouter文件夹下创建对应的四个路由文件

         安装express:npm install --save express

         对四个路由文件进行设置

const express = require("express"); //引用
const router = express.Router(); //实现路由并存放

//设置路由
//router.get("路由地址",路由函数)
router.get("/data",(req,res) => { //req 请求,res 响应
    res.send({msg:"我是one的响应路由地址"})
}) 

//暴露
module.exports = router;

         在index.js文件中创建路由合并和http服务

const express = require("express"); //引用
const app = express(); //创建express对象

//引用路由文件
let chart1 = require("./router/one.js");
let chart2 = require("./router/two.js");
let chart3 = require("./router/three.js");
let chart4 = require("./router/four.js");

//使用路由:使用中间见来配置路由
app.use("/one",chart1)
app.use("/two",chart2)
app.use("/three",chart3)
app.use("/four",chart4)

//监听端口
app.listen(3000) //端口号自己可以随便设置

         在命令提示符中测试:node index.js

        在端口页面中查看

 api接口数据创建

        在server目录下创建datas目录并放取4个json数据文件

 one.json:

{
    "chartData":[
        {"title":"冰箱","num":1827},
        {"title":"洗衣机","num":342},
        {"title":"电视机","num":541},
        {"title":"微波炉","num":1347},
        {"title":"烤箱","num":2431},
        {"title":"空调","num":876},
        {"title":"洗碗机","num":1578}
    ]
}

two.json:

{
    "chartData":{
        "day":["星期1","星期2","星期3","星期4","星期5","星期6","星期7"],
        "num":{
            "Clothes":[140, 232, 101, 264, 90, 340, 250],
            "digit":[120, 282, 111, 234, 220, 340, 310],
            "Electrical":[320, 132, 201, 334, 190, 130, 220],
            "gear":[220, 402, 231, 134, 190, 230, 120],
            "Chemicals":[220, 302, 181, 234, 210, 290, 150]
      
        }
    }
}

three.json:

{
    "chartData":[
        { "value": 567, "name":"服饰" },
        { "value": 123, "name":"数码" },
        { "value": 324, "name":"家电" },
        { "value": 89, "name":"家居" },
        { "value": 453, "name":"日化" },
        { "value": 767, "name":"熟食" }
     
      ]
}

four.json:

{
    "chartData":{
        "day":["星期1","星期2","星期3","星期4","星期5","星期6","星期7"],
        "num":{
            "Clothes":[320, 502, 401, 334, 390, 430, 720],
            "digit":[234, 564, 443, 234, 754, 430, 321],
            "Electrical":[220, 321, 335, 534, 390, 330, 310],
            "gear":[269, 212, 491, 368, 341, 330, 410],
            "Chemicals": [820, 832, 901, 934, 1290, 1330, 1320]
      
        }
      }
}

         对四处文件进行引用并且把数据返回给前台

const express = require("express"); //引用
const router = express.Router(); //实现路由并存放

let oneData = require("../datas/one.json") //数据引用到前台
//设置路由
//router.get("路由地址",路由函数)
router.get("/data",(req,res) => { //req 请求,res 响应
    res.send({msg:"我是one的响应路由地址",chartData1:oneData})
}) 

//暴露
module.exports = router;

        重启端口服务 访问页面中查看

解决跨域问题

        在index.js文件中使用cors后端方式解决

app.use(function(req,res,next){
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length,Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET,DELETE,OPTIONS');
    next();
    })

         

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VueEcharts项目实战,首先要使用vue-cli3创建项目。可以通过运行命令"vue create 项目名称"来创建一个Vue项目。接下来,进入项目目录,使用命令"npm run serve"来运行项目。这样就可以在本地开发环境开始项目实战了。 在数据可视化方面,Echarts是一个非常流行的图表库之一。除了Echarts外,还有其他一些流行的图表库,比如AntV、Highcharts和D3.js。这些图表库都是基于浏览器图形渲染技术实现的,主要有两种类型: Canvas和SVG。Canvas适合于大型渲染区域的应用程序,而SVG适合于图像密集型的应用。它们各自有不同的特点和适用场景,具体选择哪种图表库要根据项目需求和特点进行选择。 在具体的项目实战,可以使用Echarts创建各种图表和地图。Echarts提供了丰富的图表类型和交互功能,可以根据数据灵活地进行配置和展示。例如,可以使用Echarts创建柱状图、折线图、饼图等各种类型的图表。同时,Echarts还支持对地图进行可视化展示,可以绘制各种地理信息和相关数据。使用Echarts可以通过配置项和数据来实现对图表和地图的定制化展示,使数据更加直观和易于理解。 在VueEcharts项目实战,除了使用Echarts创建图表和地图,还可以结合其他技术和工具来实现更多功能。例如,可以使用全局模态框来实现弹窗效果,使用Flex布局来实现页面的自适应布局,使用数字滚动来展示数据的动态变化,使用自定义小部件来实现一些炫酷的效果等等。此外,还可以利用rem和flexible.js进行智能大屏适配,使用cssrem插件来方便地使用rem单位进行样式开发等。 总之,在VueEcharts项目实战,可以根据具体需求和项目特点,结合Vue的开发框架和Echarts数据可视化能力,实现丰富多样的图表和地图展示,同时还可以利用其他技术和工具来增强项目的功能和用户体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [echarts学习——(上)Vue+Echarts构建可视化大数据平台实战项目分享(附源码)](https://blog.csdn.net/weixin_43148111/article/details/123982183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值