欢迎访问宙启技术站
智能推送

Vue3引入axios封装接口的两种方法实例

发布时间:2023-05-16 18:36:25

1、通过全局定义Vue.prototype.$http

Vue.prototype.$http = axios

将axios挂载到Vue原型上后,就可以在所有的Vue组件中直接调用this.$http.xxx()方法,发送请求。例如:

this.$http.get('/api/users').then(response => {

  console.log(response.data)

}).catch(error => {

  console.log(error)

})

2、通过创建Http.js文件并导出封装好的axios实例

// Http.js

import axios from 'axios'

const http = axios.create({

  baseURL: '/api',

  timeout: 5000

})

http.interceptors.request.use(config => {

  // 拦截请求的配置信息,比如加上token

  // config.headers['Authorization'] = localStorage.getItem('token')

  return config

}, error => {

  return Promise.reject(error)

})

http.interceptors.response.use(response => {

  // 拦截响应结果,比如处理通用的错误码

  if (response.status === 200) {

    return response.data

  } else {

    // 错误处理...

  }

}, error => {

  return Promise.reject(error)

})

export default http

然后在需要发送请求的组件中,引入Http.js文件,使用http.xxx()方法发送请求。

import http from '@/utils/Http.js'

http.get('/users').then(response => {

  console.log(response)

}).catch(error => {

  console.log(error)

})

以上是两种常见的封装axios请求的方法,可以选择适合自己项目的方式来进行封装,使其更符合自己的项目需求和方便维护。在实际项目中,我们需要考虑接口的请求统一配置、拦截请求/响应结果、错误处理等问题,才能用好axios来发送请求。