当前位置:首页 > VUE

vue实现接口配置

2026-03-09 21:32:53VUE

配置Axios实例

在Vue项目中通常使用Axios进行HTTP请求。创建一个独立的axios.js文件配置基础实例:

import axios from 'axios'

const service = axios.create({
  baseURL: process.env.VUE_APP_API_BASE_URL, // 从环境变量读取
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  }
})

请求拦截器

添加统一的请求预处理逻辑,例如自动添加Token:

service.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

响应拦截器

处理响应数据和错误:

vue实现接口配置

service.interceptors.response.use(
  response => {
    const res = response.data
    if (res.code !== 200) {
      return Promise.reject(new Error(res.message || 'Error'))
    }
    return res
  },
  error => {
    if (error.response.status === 401) {
      // 处理未授权情况
    }
    return Promise.reject(error)
  }
)

API模块化管理

创建api目录按功能模块组织接口:

// api/user.js
import request from '../utils/axios'

export function login(data) {
  return request({
    url: '/user/login',
    method: 'post',
    data
  })
}

环境变量配置

在项目根目录创建不同环境的配置文件:

vue实现接口配置

# .env.development
VUE_APP_API_BASE_URL=http://dev.api.example.com

全局错误处理

main.js中注册全局错误处理器:

Vue.config.errorHandler = (err) => {
  if (err.message.includes('timeout')) {
    showToast('请求超时')
  }
}

接口Mock方案

开发阶段可使用Mock.js模拟数据:

import Mock from 'mockjs'
Mock.mock('/user/login', 'post', {
  code: 200,
  data: {
    token: '@guid'
  }
})

TypeScript支持

为接口定义类型声明:

interface ApiResponse<T> {
  code: number
  data: T
  message?: string
}

export function getUserInfo(): Promise<ApiResponse<User>> {
  return request.get('/user/info')
}

标签: 接口vue
分享给朋友:

相关文章

vue登录逻辑的实现

vue登录逻辑的实现

Vue 登录逻辑实现 前端实现 创建登录组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含表单元素,如用户名和密码输入框,以及提交按钮。 <template&…

vue实现tablegrid

vue实现tablegrid

Vue 实现 TableGrid 的方法 使用 Element UI 的 Table 组件 Element UI 提供了强大的 Table 组件,可以快速实现表格布局。安装 Element UI 后,…

vue实现handsontable

vue实现handsontable

Vue 中实现 Handsontable 要在 Vue 项目中集成 Handsontable,可以使用官方提供的 @handsontable/vue 封装库。以下是一个完整的实现步骤。 安装依赖 确…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template>…

vue实现CRUD

vue实现CRUD

Vue 实现 CRUD 操作 Vue 提供了响应式数据绑定和组件化开发能力,结合后端 API 可以轻松实现 CRUD(增删改查)功能。以下是基于 Vue 3 和 Axios 的完整实现方案。 安装依…