使用Axios与后端进行数据交互

文章介绍了如何在Vue项目中通过npm安装axios并设置全局baseURL,以简化URL管理。在main.js中配置axios后,将其绑定到Vue实例上,以便在组件中直接调用。接着,文章演示了在组件的created生命周期钩子中正确使用箭头函数来确保this指向,从而从后端获取数据并赋值给tableData,以供ElementUI表格组件渲染。
摘要由CSDN通过智能技术生成

一、安装

npm install axios

main.js中导入:

import axios from 'axios'

        并且可以在main.js中为axios设置一个baseURL,这样就不用在项目中到处输入网址了,在main.js中设置一遍,其他的地方

// 给axios对象配置一个baseUrl
axios.defaults.baseURL = "http://localhost:8088"

// 将axios作为全局的自定义数学,每个组件可以在内部直接调用$http进行调用axios
Vue.prototype.$http = axios  #vue2的写法

app.config.globalProperties.$http = axios  #vue3写法

二、前端获取后端数据

        下面的created是在组件新创建的时候调用(但是注意其内部的方法却是一个回调方法),注意这里的写法,和一般的函数不一样,他后面用到了=>,这样的写法可以使得this跟父方法属于一个作用域,不然 this.tableData和response不是同一个作用域,这样就拿不到数据。

正确写法
  this.$http.get("/user/findAll").then((response)=>{
        this.tableData = response.data
      })

//错误写法,会报错:Uncaught (in promise) TypeError: Cannot set properties of undefined ( setting 'tableData')

下面代码里的两个this不属于同一个作用域,因此拿不到数据
  this.$http.get("/user/findAll").then(function(response){
        this.tableData = response.data
      })
export default {
    created:function(){
        //注意这一条代码的两个this,必须这样风格的=>写,不然不是一个作用域。
      this.$http.get("/user/findAll").then((response)=>{
        this.tableData = response.data   //tableData是渲染一个表格组件所需的数据变量,见template里面的变量
      })
    },
    data() {
      return {
        tableData: []
      }
    }
}
</script>


//下面的代码是基于element-ui的一个表格的代码,渲染该表格需要给tableData数据变量赋值
<template>
    <div>
    <el-table
    :data="tableData"
    style="width: 100%"
    :row-class-name="tableRowClassName">
    <el-table-column
      prop="id"
      label="编号"
      width="180">
    </el-table-column>
    <el-table-column
      prop="username"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="birthday"
      label="生日">
    </el-table-column>
  </el-table>
    </div>
</template>

然后就将response的data放到了this.tableData变量中,前端就可以对tableData进行渲染。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ad_m1n

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

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

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

打赏作者

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

抵扣说明:

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

余额充值