当前位置:首页 > VUE

vue 实现接口调用

2026-03-29 19:25:57VUE

安装 axios 依赖

在 Vue 项目中安装 axios,用于发送 HTTP 请求:

npm install axios

创建 API 封装模块

src 目录下新建 api 文件夹,并创建 request.js 文件封装 axios:

import axios from 'axios';

const service = axios.create({
  baseURL: 'https://api.example.com', // 接口基础地址
  timeout: 5000, // 请求超时时间
});

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 可在此处添加请求头(如 token)
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    return response.data;
  },
  error => {
    return Promise.reject(error);
  }
);

export default service;

定义具体接口

api 文件夹下创建模块化接口文件(如 user.js):

import request from './request';

export function getUserInfo(params) {
  return request({
    url: '/user/info',
    method: 'get',
    params,
  });
}

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

在组件中调用接口

在 Vue 组件中引入并调用接口:

import { getUserInfo, updateUser } from '@/api/user';

export default {
  methods: {
    async fetchData() {
      try {
        const res = await getUserInfo({ id: 1 });
        console.log(res);
      } catch (error) {
        console.error(error);
      }
    },
    async submitData() {
      try {
        await updateUser({ name: 'Vue', age: 18 });
      } catch (error) {
        console.error(error);
      }
    },
  },
  mounted() {
    this.fetchData();
  },
};

环境变量配置

在项目根目录创建 .env.development.env.production 文件,区分开发和生产环境接口地址:

# .env.development
VUE_APP_BASE_API = 'https://dev-api.example.com'

# .env.production
VUE_APP_BASE_API = 'https://api.example.com'

修改 request.js 中的 baseURL

baseURL: process.env.VUE_APP_BASE_API,

跨域处理(开发环境)

vue.config.js 中配置代理:

vue 实现接口调用

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000', // 后端地址
        changeOrigin: true,
        pathRewrite: { '^/api': '' },
      },
    },
  },
};

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

相关文章

vue实现冰墩墩

vue实现冰墩墩

使用 Vue 实现冰墩墩动画 通过 Vue 的动画特性和 SVG 技术,可以动态渲染冰墩墩的形象。以下是具体实现方法: 准备 SVG 素材 冰墩墩的形象通常由多个 SVG 路径组成,包括身体轮廓、面…

vue实现mvc

vue实现mvc

Vue 实现 MVC 模式 Vue 本身是一个 MVVM(Model-View-ViewModel)框架,但可以通过结构调整实现 MVC(Model-View-Controller)模式。以下是具体实…

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue实现注册

vue实现注册

Vue 实现注册功能 注册功能通常涉及前端表单、数据验证、与后端 API 的交互等步骤。以下是一个完整的 Vue 实现注册功能的方案。 创建注册表单 使用 Vue 的模板语法创建注册表单,包含用户名…

vue实现popper

vue实现popper

Vue 实现 Popper 的方法 使用 Tippy.js 库 Tippy.js 是一个轻量级的 Popper.js 封装库,提供丰富的工具提示功能。安装 Tippy.js 及其 Vue 封装: n…