浅谈在Vue-cli里基于axios封装复用请求


Posted in Javascript onNovember 06, 2017

本文介绍了浅谈在Vue-cli里基于axios封装复用请求,分享给大家,具体如下:

安装

只用安装一个axios就可以了。

npm install axios --save

接口代理设置

为了请求可以正常发送,我们一般要进行一个接口代理的配置,这样可以避免请求跨域,项目打包之后,后端一般也要搭建一个nginx之类的东西进行转发请求,不然请求会因为跨域问题失败的。

//文件位置:config/index.js
proxyTable: {
 '/api': {
  target: 'http://47.95.xxx.246:8080', // 通过本地服务器将你的请求转发到这个地址
  changeOrigin: true, // 设置这个参数可以避免跨域
  pathRewrite: {
   '/api': '/'
  }
 },
},

浅谈在Vue-cli里基于axios封装复用请求 

设置好了之后,当你在项目中要调用 http://47.95.xxx.246:8080 这个服务器里面的接口,可以直接用 /api 代替服务器地址。

发起请求

main.js入口文件中:

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中,只要你能引用到,就没问题,如下图所示:

浅谈在Vue-cli里基于axios封装复用请求 

创建三个.js文件,里面我都很认真的注释了,我就直接贴图片了,在文末我把这三个文件的地址发出来,需要的小伙伴自取。

fetch.js:

浅谈在Vue-cli里基于axios封装复用请求 

url.js:

浅谈在Vue-cli里基于axios封装复用请求 

api.js

浅谈在Vue-cli里基于axios封装复用请求 

在组件里面如何使用接口:

浅谈在Vue-cli里基于axios封装复用请求 

封装axios文件地址在这里:传送门

代码注释什么的,已经蛮多了,跟着文章一步一步走,实现封装axios请求,没毛病的。本文并没有把很多功能都完整的列出来,主要是追求一个上手,剩下的东西,各位小伙伴们可以自行研究。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript下过滤数组重复值的代码
Sep 10 Javascript
javascript 随机展示头像实现代码
Dec 06 Javascript
jQuery中实现动画效果的基本操作介绍
Apr 16 Javascript
JQuery中层次选择器用法实例详解
May 18 Javascript
jQuery动态添加
Apr 07 Javascript
JavaScript Ajax编程 应用篇
Jul 02 Javascript
JavaScript prototype属性详解
Oct 25 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
在vue中v-bind使用三目运算符绑定class的实例
Sep 29 Javascript
vue中 this.$set的用法详解
Sep 06 Javascript
解决vue cli使用typescript后打包巨慢的问题
Sep 30 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 Javascript
浅谈mint-ui 填坑之路
Nov 06 #Javascript
基于vue实现分页效果
Nov 06 #Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 #Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 #Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
Nov 06 #Javascript
vue自定义过滤器创建和使用方法详解
Nov 06 #Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 #Javascript
You might like
在PHP的图形函数中显示汉字
2006/10/09 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
javascript string字符串优化问题
2011/07/31 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
python3.x上post发送json数据
2018/03/04 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
css3学习心得分享
2013/08/19 HTML / CSS
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
超市活动计划书
2014/04/24 职场文书
村干部培训方案
2014/05/02 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android