Vue项目中Axios的简单封装

简介: Vue项目中Axios的简单封装

Vue推荐我们使用Axios,vue-resource在Vue2.0后就不再更新,本文对Axios的用法不做过多的介绍,只是在项目上简单封装及使用,如果有需要了解的,可以访问github

https://github.com/axios/axios

复制

1 安装

介绍比较常用的两种方式

# npm
npm install axios 
# yarn
yarn add axios

复制

2 引用

因为axios不是Vue的插件,所以不能使用use方式

import axios from 'axios'

复制

3 封装的原因

其实axios用法很简单,请求方式也是支持的很全面,为什么我们要再次封装呢,通常我们的项目会有很多页面,同时也会有很多接口,请求方式也是会有很多种,如果不统一封装,后期修改会很繁琐,也不容易维护和迭代。

4 分析

既然要封装,那我们肯定要考虑的比较全面,把项目中用到的可能性都要考虑进来,所以我们从以下几方面考虑:

  1. 请求是否需要设置请求头(一般可能需要设置token)
  2. 请求方式(get、post、delete等)
  3. 请求地址(这个地址不是全路径,后面分析)
  4. 请求参数(每个接口不一定都需要参数)

重点说下第二个请求方式中的get请求,我们项目上get请求也有两种情况,一种是参数以&拼接,

/sys/user/login?name=value&name1=value1

复制

另一种是以/方式拼接,

/sys/user/login/value/value1

复制

为什么要重点说呢,因为如果是&拼接的话,需要使用 params对象,而不是data

5 封装

既然分析完了,那就动手写代码,新建request.js文件,引用axios

import axios from 'axios'

复制

编写封装方法,此方法接收五个参数,请求方式、请求地址、请求参数(非必填)、请求模式(针对get,非必填)、请求头设置(非必填)。

import axios from 'axios';
/**
 * axios 
 * @param:{string}     method          请求类型,必填
 * @param:{string}     url             请求地址,必填
 * @param:{string}     params          请求参数,非必填
 * @param:{string}     type            请求模式,针对get,params/data
 * @param:{string}     variation       请求头,非必填
 **/
export const liRequest = (method, url, params = {}, type = "data", isToken = true) => {
    let headers = { 'Content-Type': 'application/json', }
    if (isToken) {
        headers['Authorization'] = 'token'
    }
    if (method == 'get' || type == "params") {
        console.log("params")
        return axios({
            method: method,
            url: url,
            headers: headers,
            params: params
        }).then(res => res.data);
    } else {
        return axios({
            method: method,
            url: url,
            headers: headers,
            data: params
        }).then(res => res.data);
    }
};

复制

token这个是随便写的,因为每个系统后台要求的都不相同,所以用token代替,导出这个liRequest方法就可以直接使用了。

get请求,不需要参数,不需要token

liRequest('get', '/user/page', query, 'params',false)

复制

get请求,需要参数,并且需要token

liRequest('get', '/user/page','params',query)

复制

post请求,需要参数及token

liRequest('post', '/user/page', query)
相关文章
|
2月前
|
资源调度 JavaScript 前端开发
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
这篇文章是关于如何在Vue项目中使用axios进行网络请求、二次封装axios以及使用mockjs模拟响应数据的教程。
96 1
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
|
2月前
vue3+Ts 二次封装ElementUI form表单
【10月更文挑战第8天】
241 59
|
2月前
|
JavaScript 容器
乾坤qiankun框架搭建 主应用为vue3的项目。
乾坤qiankun框架搭建 主应用为vue3的项目。
187 2
|
1月前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
1月前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
2月前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
21 7
|
1月前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
2月前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
37 6
|
1月前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
2月前
|
缓存 JavaScript 前端开发
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
78 3
下一篇
DataWorks