【axios集中管理接口】

12 篇文章 0 订阅
12 篇文章 0 订阅

首先创建https.js 基本公共的


//创建axios的一个实例
let instance = axios.create({
    baseURL:'',
    timeout: 6000
})


// 一、请求拦截器 忽略
instance.interceptors.request.use(function (config) {

    return config;
}, function (error) {
    // 对请求错误做些什么

    return Promise.reject(error);
});

// 二、响应拦截器 忽略
instance.interceptors.response.use(function (response) {

    return response.data;
}, function (error) {
    // 对响应错误做点什么
    console.log('拦截器报错');
    return Promise.reject(error);
});

/**
 * 使用es6的export default导出了一个函数,导出的函数代替axios去帮我们请求数据,
 * 函数的参数及返回值如下:
 * @param {String} method  请求的方法:get、post、delete、put
 * @param {String} url     请求的url:
 * @param {Object} data    请求的参数
 * @returns {Promise}     返回一个promise对象,其实就相当于axios请求数据的返回值
 */
export default function (method, url, data = null) {
    method = method.toLowerCase();
    if (method == 'post') {
        return instance.post(url, data)
    } else if (method == 'get') {
        return instance.get(url, { params: data })
    } else if (method == 'delete') {
        return instance.delete(url, { params: data })
    }else if(method == 'put'){
        return instance.put(url,data)
    }else{
        console.error('未知的method'+method)
        return false
    }
}


再创建接口例如 test.js

import req from './http.js'   //引入封装好的axios
//在这里定义了一个接口,把接口暴露出去给组件使用
// export const GETDATA =params=>req('get','/data.json',params)

最后在组件中使用即可 在methods中或者mounded中

        let getData =GETDATA()
         getData.then(res=>{
          console.log(res)
         })


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Vue 2 中,可以使用 Axios 库来封装网络请求。以下是一种将请求、接口地址和方法分开的页面的封装方法: 1. 首先,创建一个 `api.js` 文件,用于存放所有的接口地址和请求方法,例如: ```javascript import axios from 'axios' // 定义接口地址 const BASE_URL = 'https://api.example.com' // 封装 GET 请求方法 export function getRequest (url, params) { return axios.get(`${BASE_URL}${url}`, { params }) } // 封装 POST 请求方法 export function postRequest (url, data) { return axios.post(`${BASE_URL}${url}`, data) } // 封装 PUT 请求方法 export function putRequest (url, data) { return axios.put(`${BASE_URL}${url}`, data) } // 封装 DELETE 请求方法 export function deleteRequest (url) { return axios.delete(`${BASE_URL}${url}`) } ``` 2. 在需要调用接口的页面中,引入 `api.js` 文件,并调用其中的请求方法,例如: ```javascript import { getRequest, postRequest } from '@/api.js' // 调用 GET 请求方法 getRequest('/users', { page: 1 }) .then(response => { console.log(response.data) }) .catch(error => { console.error(error) }) // 调用 POST 请求方法 postRequest('/login', { username: 'admin', password: '123456' }) .then(response => { console.log(response.data) }) .catch(error => { console.error(error) }) ``` 这样,就可以将请求、接口地址和方法分开,便于管理和维护。 ### 回答2: 在Vue2中,我们可以使用axios来发送HTTP请求,并且可以通过封装请求接口方法,将请求、接口地址和方法分开到不同的页面中,提高代码的可读性和维护性。 首先,在项目中导入axios和相关依赖。可以通过npm或者CDN的方式导入axios和Vue相关的库。 接下来,创建一个util文件夹,并在该文件夹中创建一个api.js文件,用于封装请求接口方法。 在api.js文件中,我们可以定义一个对象,用来存储各个接口的请求方法。 ```javascript // api.js import axios from 'axios'; const api = { getUserInfo() { return axios.get('/api/user'); }, login(params) { return axios.post('/api/login', params); }, logout() { return axios.get('/api/logout'); }, // 其他接口... }; export default api; ``` 在以上代码中,我们定义了一个api对象,该对象包含了getUserInfo、login、logout等接口的请求方法。这些方法通过axios发送HTTP请求,并返回一个Promise对象。 接下来,在需要使用接口的页面中,可以通过import语句引入api.js文件,从而可以调用相应的接口方法。 ```javascript // Home.vue import api from '@/utils/api'; export default { name: 'Home', mounted() { this.getUser(); }, methods: { getUser() { api.getUserInfo() .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); }, // 其他方法... } } ``` 以上代码是一个Home页面的示例,通过引入api.js文件,并调用getUserInfo接口方法,获取用户信息。在then回调中,我们可以处理返回的数据。在catch回调中,我们可以处理请求出错的情况。 通过将请求、接口地址和方法分开到不同的页面,我们可以使代码结构更加清晰,易于维护和管理。同时,可以在api.js文件中统一处理请求的错误信息和请求的统一配置,增加灵活性。 ### 回答3: 在Vue2中使用axios封装请求接口方法,可以将请求、接口地址和方法分开到不同的页面。 首先,创建一个名为api.js的文件,用于集中管理所有的接口地址,例如: ```javascript // api.js const baseURL = 'http://api.example.com'; // 设置接口的基础地址 export default { login: baseURL + '/login', // 登录接口 getUserInfo: baseURL + '/getUserInfo', // 获取用户信息接口 // 其他接口... } ``` 接下来,创建一个名为request.js的文件,用于统一封装axios请求方法,例如: ```javascript // request.js import axios from 'axios'; axios.defaults.timeout = 5000; // 设置请求超时时间 export default function request(url, method, data) { return new Promise((resolve, reject) => { axios({ url, method, data }).then(res => { resolve(res.data); }).catch(error => { reject(error); }); }); } ``` 最后,在需要发送请求的组件中,引入api.js和request.js,并调用请求方法,例如: ```javascript // MyComponent.vue import api from './api.js'; import request from './request.js'; export default { methods: { login() { request(api.login, 'post', { // 调用登录接口 username: 'admin', password: '123456' }).then(res => { console.log('登录成功:', res); }).catch(error => { console.log('登录失败:', error); }); }, getUserInfo() { request(api.getUserInfo, 'get') // 调用获取用户信息接口 .then(res => { console.log('获取用户信息成功:', res); }).catch(error => { console.log('获取用户信息失败:', error); }); }, // 其他请求方法... } } ``` 这样,我们将请求、接口地址和方法都分开到不同的页面中,使代码更加清晰和可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值