vue封装api ai生成

Vue封装API,通常是指将一些常用的请求方法和参数进行封装,以便在不同的组件中重复使用。

以下是一个简单的Vue API封装的例子:

import axios from 'axios'

const apiClient = axios.create({
  baseURL: 'https://api.example.com',
  headers: {
    'Content-Type': 'application/json'
  }
})

export default {
  getProducts() {
    return apiClient.get('/products')
  },

  getProduct(id) {
    return apiClient.get('/products/' + id)
  },

  createProduct(product) {
    return apiClient.post('/products', product)
  },

  updateProduct(product) {
    return apiClient.put('/products/' + product.id, product)
  },

  deleteProduct(id) {
    return apiClient.delete('/products/' + id)
  }
}

在此示例中,我们创建了一个名为apiClient的axios实例,并定义了一组常用的HTTP请求,如getProductsgetProductcreateProductupdateProduct,以及deleteProduct。这使得我们可以在Vue组件中轻松地调用这些方法。例如:

<script>
import api from '@/api'

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

  mounted() {
    this.fetchProducts()
  },

  methods: {
    async fetchProducts() {
      const response = await api.getProducts()
      this.products = response.data
    }
  }
}
</script>

通过Vue封装API,我们可以减少在组件中重复编写相同代码的次数,并提高代码的可维护性和可重用性。

  1. 首先在Vue项目中创建一个api文件夹,用于存放所有的API接口。

  2. 在该文件夹中创建一个index.js文件,用于封装所有的API接口,并在每次请求API接口时带上token。

    import axios from 'axios'
    
    // 创建axios实例
    const service = axios.create({
      baseURL: process.env.VUE_APP_BASE_API,
      timeout: 5000 // 请求超时时间
    })
    
    // request拦截器
    service.interceptors.request.use(
      config => {
        // 如果有token,则带上token
        if (localStorage.getItem('token')) {
          config.headers['Authorization'] = localStorage.getItem('token')
        }
        return config
      },
      error => {
        // 请求错误处理
        console.log(error)
        Promise.reject(error)
      }
    )
    
    // response拦截器
    service.interceptors.response.use(
      response => {
        const res = response.data
        if (res.code !== 20000) {
          // 错误处理
          return Promise.reject(new Error(res.message || 'Error'))
        } else {
          return res
        }
      },
      error => {
        console.log('err' + error)
        return Promise.reject(error)
      }
    )
    
    // 封装所有的API接口
    export function login(params) {
      return service({
        url: '/login',
        method: 'post',
        data: params
      })
    }
    
    export function getUserInfo() {
      return service({
        url: '/user/info',
        method: 'get'
      })
    }
    
    // 。。。其他API接口
    

  3. 在Vue组件中直接引入上述封装的API接口即可调用:

    import { login, getUserInfo } from '@/api'
    
    // 调用API接口,带上token
    login(params).then(res => {
      // 处理登录逻辑
    })
    
    // 调用API接口,带上token
    getUserInfo().then(res => {
      // 处理获取用户信息逻辑
    })
    

    注意:在调用API接口时需要先登录并保存token,可以将token保存在localStorage中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中封装API接口是一个常见的任务,因为这是在Vue应用程序中使用API的主要方式。在Vue3中,我们可以使用Axios这个工具来处理HTTP请求。Axios对于Vue应用程序非常有用,并且能够轻松地编写模块化、可重用的API代码。 首先,在Vue3项目中,我们需要首先安装并引入Axios库。我们可以在Vue的main.js文件中导入Axios,然后将其安装到Vue实例中。在这个过程中,我们可以为Axios设置一些默认的配置,例如请求方式、请求url、请求超时时间等等。 接下来,我们可以在Vue的组件中定义一个API服务,并使用Axios库来进行API请求。我们可以通过封装一个统一的API服务来避免在不同的组件中重复写相同的请求代码,提高代码的封装性和重用性。可以将常用的API请求封装为方法,以便在Vue组件中轻松调用,并提供诸如请求参数、错误处理和成功处理等功能。 在Vue3中,我们可以使用Axios的拦截器来处理请求或响应数据,例如为请求添加统一的headers、过滤响应数据等等,从而提高API请求的灵活性。 最后,我们需要将API服务作为插件添加到Vue实例中,以方便在应用程序中全局使用。这是通过在Vue的main.js文件中安装一个Vue插件并将API服务作为选项导入实现的。 总的来说,在Vue3中封装API接口可以提高代码的可维护性和重用性,同时也能够使我们更容易地统一管理API请求,从而提高应用程序的性能和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值