自从Vue2.0推荐你们使用 axios 开始,axios 被愈来愈多的人所了解。使用axios发起一个请求对你们来讲是比较简单的事情,可是axios没有进行封装复用,项目愈来愈大,引发的代码冗余。就会很是麻烦的一件事。因此本文会详细的跟你们介绍,如何封装请求,而且在项目组件中复用请求。有须要的朋友能够作一下参考,喜欢的能够点波赞,或者关注一下,但愿能够帮到你们。ios
本文首发于个人我的blog:obkoro1.comnginx
只用安装一个axios就能够了。git
npm install axios --save 复制代码
为了请求能够正常发送,咱们通常要进行一个接口代理的配置,这样能够避免请求跨域,项目打包以后,后端通常也要搭建一个nginx之类的东西进行转发请求,否则请求会由于跨域问题失败的。github
//文件位置:config/index.js
proxyTable: {
'/api': {
target: 'http://47.95.xxx.246:8080', // 经过本地服务器将你的请求转发到这个地址
changeOrigin: true, // 设置这个参数能够避免跨域
pathRewrite: {
'/api': '/'
}
},
},复制代码
设置好了以后,当你在项目中要调用http://47.95.xxx.246:8080
这个服务器里面的接口,能够直接用/api
代替服务器地址。ajax
import axios from 'axios';//引入文件
Vue.prototype.$http = axios;//将axios挂载到Vue实例中的$ajax上面,在项目中的任何位置经过this.$http使用复制代码
//没有封装的时候,在组件中发起请求的方式:
this.$ajax({
url:'/api/articles',//api 代理到json文件地址,后面的后缀是文件中的对象或者是数组
method:'get',//请求方式
//这里能够添加axios文档中的各类配置
}).then(function (res) {
console.log(res,'成功');
}).catch(function (err) {
console.log(err,'错误');
})
//还能够像下面这么简写
this.$ajax.get('api/publishContent').then((res) => {
console.log(res,'请求成功')
},(err)=>{
console.log(err,'请求失败');
});复制代码
封装的时候,我一般喜欢把请求抽象成三个文件,文件位置放在src中,只要你能引用到,就没问题,以下图所示:npm
建立三个.js文件,里面我都很认真的注释了,我就直接贴图片了,在文末我把这三个文件的地址发出来,须要的小伙伴自取。json
fetch.js:axios
url.js:后端
api.jsapi
代码注释什么的,已经蛮多了,跟着文章一步一步走,实现封装axios请求,没毛病的。本文并无把不少功能都完整的列出来,主要是追求一个上手,剩下的东西,各位小伙伴们能够自行研究。
最后:如需转载,请放上原文连接并署名。码字不易,感谢支持!本人写文章本着交流记录的心态,写的很差之处,不撕逼,可是欢迎指点。而后就是但愿看完的朋友点个喜欢,也能够关注一下我。
blog网站 and 掘金我的主页
以上2017.11.6