写给后端开发的『vue3』请求后端接口

本文分享一下在vue3前端项目中请求后端接口获取数据。比较简单,内容如下:

1、使用axios请求后端接口

首先npm install axios,添加axios依赖,就靠它来请求后端接口了,基本等同于使用jquery发ajax。

javascript 复制代码
# src/main.js
import axios from 'axios'
import vueAxios from 'vue-axios'
createApp(App).use(ElementPlus).use(vueAxios,axios).mount("#app");

axios是一个独立的库,方便调用,这里使用vue-axios,通过this.axios发起后端请求。后端接口如图所示:

通过axios获取到数据后赋值到data数据即可,页面引用data数据进行展示。

javascript 复制代码
<script>
export default{
    data(){
        return {
            signName: 'star',
            users: []
        }
    },
    methods:{
        getUsers(){
            this.axios.get('/api/getAllUsers')
                 .then((res)=>{
                    console.log(JSON.stringify(res.data.records))
                    this.users = res.data.records
                 })
                 .catch(function (error) { 
                    console.log(error);
            });
        }
    },
    mounted () {
        this.getUsers()
  }
}
</script>

2、配置代理

直接向localhost:8787/getAllUsers发请求会产生跨域问题,通常前端和后端是分开部署的,即使部署在一台服务器端口也不同,所以存在跨域问题(不考虑将前端dist扔到后端服务器里半分离情况)。

在vue.config.js文件中配置代理(没有新建一个即可),将本地路径请求转发到目标地址,这样就可以规避掉浏览器同源策略。同源只是浏览器的限制,即便跨域后端还是可以收到请求数据的。

javascript 复制代码
module.exports = {
  devServer: {
    port: 80,
    proxy: {
      '/api': {
        target: 'http://localhost:8787',
        secure: true,
        changeOrigin: true,
        pathRewrite: {
          '^/api': '',
        },
      }
    },
  },
}

3、页面table渲染

最后写一个.vue将请求数据展示一下,使用方式和上篇相同,只要有数据了页面展示可以通过第三方组件轻松展示,这里使用element-plus。

css 复制代码
<template>
  <el-table :data="users" style="width: 100%">
    <el-table-column prop="id" label="编号" width="120" />
    <el-table-column prop="name" label="姓名" width="120" />
    <el-table-column prop="age" label="年龄" width="120" />
    <el-table-column prop="city" label="城市" />
  </el-table>
</template>

最终效果如下,如果参照本文出现任何与预期不一致的地方,那一定是本文写错了,还请参见各个组件官方文档。

相关推荐
想用offer打牌4 小时前
RocketMQ如何防止消息丢失?
java·后端·架构·开源·rocketmq
PineappleCoder5 小时前
还在重复下载资源?HTTP 缓存让二次访问 “零请求”,用户体验翻倍
前端·性能优化
拉不动的猪5 小时前
webpack编译中为什么不建议load替换ast中节点删除consolg.log
前端·javascript·webpack
李姆斯5 小时前
Agent时代下,ToB前端的UI和交互会往哪走?
前端·agent·交互设计
源码获取_wx:Fegn08955 小时前
基于springboot + vue健身房管理系统
java·开发语言·前端·vue.js·spring boot·后端·spring
闲谈共视5 小时前
基于去中心化社交与AI智能服务的Web钱包商业开发的可行性
前端·人工智能·去中心化·区块链
CreasyChan5 小时前
C# 反射详解
开发语言·前端·windows·unity·c#·游戏开发
JIngJaneIL6 小时前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
码事漫谈6 小时前
Vibe Coding时代:人人都是开发者
后端
2501_916766546 小时前
【Spring框架】SpringJDBC
java·后端·spring