美文网首页
vue项目Api的封装

vue项目Api的封装

作者: 懒懒猫 | 来源:发表于2021-06-17 14:11 被阅读0次

在src中创建文件夹api

config.js: http请求的基础配置
http.js http请求接口配置

config.js

import axios from 'axios'

// 给所有axios请求设置基础的域名
// axios.defaults.baseURL = 'http://localhost:3000'


//用axios.create可以创建axios的实例,允许不同实例有不同配置
const axios1 = axios.create({
    baseURL: 'http://localhost:3000',
    // 请求超时的时间
    timeout: 5000
}); 
// const axios2 = axios.create({
//     baseURL: 'http://www.test.com',
//     timeout: 5000
// });


//添加请求拦截器,会在发起请求之前执行相应的需求
axios1.interceptors.request.use(function (config) {
    // console.log('我是请求拦截器');
    config.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem("token");
    // 在发送请求之前做些什么
    return config;
  }, 
function (error) {
    // 处理响应错误
    return Promise.reject(error);
  });

// //添加响应拦截器,会在返回数据后先执行相应的需求
axios1.interceptors.response.use(function (response) {
    console.log('我是响应拦截器');
    // 处理响应数据
    return response;
  }, 
function (error) {
    // Do something with response error
    console.log('error',error.status);

    return Promise.reject(error);
  });
export default axios1

http.js

 import axios1 from './config'

//查询图书
export function selectBook() {
    return axios1({
        url: '/book',
        method: 'get'
    })
}

// 添加图书
export function addBook(data) {
    return axios1({
        url: '/book',
        method: 'post',
        data
    })
}

// 修改图书
export function editBook(data) {
    return axios1({
        url: '/book',
        method: 'put',
        data
    })
}
//删除图书
export function delBook(params) {
    return axios({
        url: '/book',
        method: 'delete',
        params
    })
}

在业务需求中调用

import {selectBook} from '@/api/http';
......
//获取初始化数据
getBookData() {
    selectBook()
    .then((res) => {
    this.book = res.data.list;
    })
    .catch((err)=>{
    console.log(err);
    })
},

也可以用async和await来优化代码

async getBookData() {
    try {
        let res = await selectBook();
        this.book = res.data.list;
    }catch(err){
        console.log(err);
    }
},

注意: main.js中不需要再引入axios, Vue的原型也不需要添加axios

相关文章

  • vue项目Api的封装

    在src中创建文件夹api config.js: http请求的基础配置http.js http请求接口配置 co...

  • vue项目后台接口管理

    前言 上篇文章axios二次封装及API接口统一管理讲到了vue项目中的axios请求api统一的封装,但是api...

  • Vue 全局组件封装

    在Vue项目的开发中,我们需要对一些常用的组件进行封装复用,这时我们需要用到Vue提供的全局组件API来封装我们的...

  • 上传

    axios封装 上传api.js api.js vue文件

  • vue api封装

    创建api文件夹,文件夹下创建 api.js 和 http.js安装axios和qsnpm install axi...

  • Vue封装插件并发布到npm上

    目录 Vue封装插件创建项目修改配置测试插件 发布插件到npm 文章参考 Vue封装插件 1. 创建项目 这里采用...

  • Vue2.0网络请求axios封装相关文章

    1、在Vue-cli里基于axios封装复用请求2、vue中axios的封装3、# vue2.0项目实战(3)使用...

  • vue中axios封装和api接口管理

    vue中Axios的封装和API接口的管理 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是...

  • 2020-04-07vue中Axios的封装和API接口的管理

    vue中Axios的封装和API接口的管理 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是...

  • vue中axios封装和api接口管理

    vue中Axios的封装和API接口的管理 我们所要的说的axios的封装和api接口的统一管理,其实主要目的就是...

网友评论

      本文标题:vue项目Api的封装

      本文链接:https://www.haomeiwen.com/subject/xrulhltx.html