Vue2中axios的三层架构的简单搭建

文章介绍了在Vue项目中如何利用axios库进行HTTP请求的配置,包括设置基础URL、添加请求和响应拦截器,以及在utils和api文件夹中封装请求方法。在组件中,使用async/await来调用这些接口函数,以异步方式获取和处理后台返回的数据。
摘要由CSDN通过智能技术生成

1.辅助工具层---utils

        //在utils文件夹下面建立request.js文件
        //引入axios库
        import axios from 'axios';
        //配置请求的基准URL地址
        axios.defaults.baseURL = 'http://sell.h5.itsource.cn:8087';
        // 添加请求拦截器
        axios.interceptors.request.use(function(config) {
            // 在发送请求之前做些什么
            return config;
        }, function(error) {
            // 对请求错误做些什么
            return Promise.reject(error);
        });

        // 添加响应拦截器
        axios.interceptors.response.use(function(response) {
            // 2xx 范围内的状态码都会触发该函数。
            // 对响应数据做点什么
            return response;
        }, function(error) {
            // 超出 2xx 范围的状态码都会触发该函数。
            // 对响应错误做点什么
            return Promise.reject(error);
        });
        export default axios;

我们可以在请求拦截中配置token;在响应拦截中对消息进行统一管理

2.接口层---api

//在api文件夹中封装每个组件的接口  (xx.js)
import request from '@/utils/request.js'

// get的请求方式
export const reqxxx = (params) => {
    return request({
        method: 'get',
        url: 'xxx',
        params
    })
};

// post的请求方式
export const reqxxxx = (data) => {
    return request({
        method: 'post',
        url: 'xxx',
        data
    })
};

3.应用层---各个组件中使用

//在对应的组件中引入使用api接口的封装函数
import {reqxxx} from "@/api/xx.js";


//具体使用 async和await搭配使用
  created() {
    this.getData();
  },

  methods: {
    // 获取列表
    async getData() {
      let res = await reqxxx(data);
    },

data为对象是接口文档所需要发送数据,res为响应数据是后台返回来的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3搭建axios可以按照以下步骤进行操作: 1. 安装axiosvue-axios依赖:在终端运行命令`npm install --save axios vue-axios`来安装axiosvue-axios。 2. 在src根目录创建service文件夹,并在该文件夹下创建axios.js文件。 3. 在axios.js文件,引入axiosvue-axios,并创建一个axios实例。 4. 在axios实例,可以添加拦截器来处理请求和响应。比如,在请求拦截器可以做一些请求发送前的处理,而在响应拦截器可以对响应结果进行处理。 5. 最后,将axios实例导出供其他组件使用。 代码示例: ```javascript // 安装依赖 // npm install --save axios vue-axios // service/axios.js import axios from "axios"; import VueAxios from "vue-axios"; const instance = axios.create({ timeout: 1800000 // 设置请求超时时间 }); // 请求拦截器 instance.interceptors.request.use( config => { // 在发送请求之前做些什么 return config; }, error => { // 对请求错误做些什么 return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( response => { if (response.resultCode === 200) { return response.data; } else { return { resultCode: -1 }; } }, error => { // 对响应错误做点什么 return Promise.reject(error); } ); export default { install(Vue) { Vue.use(VueAxios, instance); } }; ``` 在main.js使用axios: ```javascript import Vue from 'vue'; import App from './App.vue'; import axios from './service/axios'; Vue.use(axios); new Vue({ render: h => h(App) }).$mount('#app'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值