当前位置:首页 > 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)
  }
)

响应拦截器

处理响应数据和错误:

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
  })
}

环境变量配置

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

# .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支持

为接口定义类型声明:

vue实现接口配置

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

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

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

相关文章

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…

vue实现spa

vue实现spa

Vue 实现 SPA(单页应用)的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化一个 Vue 项目,确保安装了 Vue Router 作为路由管理工具。运行以下命令创建项目: vue c…

vue实现等级选择

vue实现等级选择

实现等级选择的方法 在Vue中实现等级选择功能,可以通过多种方式完成,以下是几种常见的实现方法: 使用v-for渲染星级选择 通过v-for指令循环渲染星级图标,结合点击事件实现等级选择: <…

vue实现匹配显示

vue实现匹配显示

Vue实现匹配显示的方法 使用v-if或v-show指令 通过条件渲染指令v-if或v-show,可以根据条件匹配显示不同的内容。v-if会完全销毁或重建DOM元素,而v-show仅切换CSS的dis…

vue路由实现介绍

vue路由实现介绍

Vue 路由实现介绍 Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。它通过动态映射组件到路由实现页面无刷新切换,同时支持嵌套路由、路由参数、导航守卫等高级功能…

vue滚动插件实现

vue滚动插件实现

Vue 滚动插件实现方法 使用现有插件(推荐) 对于大多数场景,推荐使用成熟的 Vue 滚动插件,例如 vue-infinite-loading 或 vue-virtual-scroller。这些插件…