当前位置:首页 > VUE

vue.js实现restful

2026-02-21 00:02:37VUE

Vue.js 实现 RESTful API 交互

安装 Axios 库
Axios 是 Vue.js 中常用的 HTTP 客户端,用于发送 RESTful 请求。通过以下命令安装:

npm install axios

配置 Axios 实例
src 目录下创建 api 文件夹,并新建 axios.js 文件,配置基础 URL 和请求拦截器:

vue.js实现restful

import axios from 'axios';

const instance = axios.create({
  baseURL: 'https://api.example.com', // 替换为实际 API 地址
  timeout: 5000,
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    const token = localStorage.getItem('token');
    if (token) config.headers.Authorization = `Bearer ${token}`;
    return config;
  },
  error => Promise.reject(error)
);

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

export default instance;

封装 RESTful 请求方法

创建 API 服务模块
api 文件夹下新建 service.js,封装 CRUD 方法:

import request from './axios';

export default {
  get(resource, params) {
    return request.get(resource, { params });
  },
  post(resource, data) {
    return request.post(resource, data);
  },
  put(resource, id, data) {
    return request.put(`${resource}/${id}`, data);
  },
  delete(resource, id) {
    return request.delete(`${resource}/${id}`);
  },
};

在 Vue 组件中使用

调用 API 示例
在组件中导入服务模块并调用对应方法:

vue.js实现restful

import api from '@/api/service';

export default {
  methods: {
    async fetchUsers() {
      try {
        const users = await api.get('/users');
        console.log(users);
      } catch (error) {
        console.error(error);
      }
    },
    async createUser(userData) {
      try {
        const response = await api.post('/users', userData);
        console.log(response);
      } catch (error) {
        console.error(error);
      }
    },
  },
};

处理跨域问题

开发环境代理配置
vue.config.js 中配置代理解决跨域:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'https://api.example.com',
        changeOrigin: true,
        pathRewrite: { '^/api': '' },
      },
    },
  },
};

错误处理与反馈

全局错误处理
main.js 中统一捕获未处理的 Promise 错误:

import Vue from 'vue';

Vue.config.errorHandler = (err, vm, info) => {
  console.error('全局错误:', err);
  // 可调用 Toast 或 Message 组件显示错误
};

标签: vuejs
分享给朋友:

相关文章

vue 实现在线预览

vue 实现在线预览

Vue 实现在线预览的常见方法 使用 iframe 嵌入 通过 iframe 标签可以嵌入多种类型的文件,如 PDF、图片、网页等。需要确保文件地址可访问。 <template> &…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现横滚

vue实现横滚

Vue 实现横滚效果 横滚效果通常指水平滚动内容,常见于轮播图、横向导航栏等场景。以下是几种实现方式: 使用 CSS 和 Vue 结合 通过 CSS 的 overflow-x 和 white-spa…

vue实现tabs

vue实现tabs

Vue实现Tabs组件的方法 使用动态组件和v-for指令 在Vue中创建Tabs组件可以通过动态组件和v-for指令实现。定义一个包含tab标题和内容的数组,使用v-for渲染tab标题,并通过点击…

vue广播实现

vue广播实现

vue广播实现 在Vue中实现广播功能可以通过事件总线(Event Bus)或Vuex来完成。以下是两种常见的实现方式: 使用事件总线(Event Bus) 事件总线是一种简单的跨组件通信方式,适用…

vue弹幕实现暂停

vue弹幕实现暂停

实现 Vue 弹幕暂停功能 监听播放状态 通过 v-model 或自定义事件绑定弹幕组件的播放状态,存储一个布尔值(如 isPlaying)控制播放与暂停。在弹幕滚动逻辑中根据该状态判断是否更新位置。…