vue-cli 引入、配置axios的方法


Posted in Javascript onMay 08, 2018

一、npm 安装axios,文件根目录下安装,指令如下

npm install axios --save-dev 

二、修改原型链,在main.js中引入axios

import axios from 'axios' 

接着将axios改写为Vue的原型属性,

Vue.prototype.$http=axios 

这样之后就可在每个组件的methods中调用$http命令完成数据请求

三、在组件中使用

methods: { 
   get(){ 
    this.$http({ 
     method:'get', 
     url:'/url', 
     data:{} 
    }).then(function(res){ 
     console.log(res) 
    }).catch(function(err){ 
     console.log(err) 
    }) 
     
    this.$http.get('/url').then(function(res){ 
     console.log(res) 
    }).catch(function(err){ 
     console.log(err) 
    }) 
   }    
}

有关axios的配置请参考如下文档,点击打开链接

下面给大家介绍下vue-cli配置axios的方法

1.

npm install axios --save

2.

npm install @type/axios --save-dev(使用ts编写的需要此声明文件,升级的axios好像不需要了,已经自带)

3.

在src目录下添加axios.ts文件,内容:

import axios from 'axios'
import {Notification} from 'element-ui'
import store from './store/index'
import buildconf from '../config/build.rootpath.js'
axios.defaults.withCredentials = true;
axios.defaults.baseURL = buildconf.serverUrl
// axios.defaults.baseURL = 'http://gsblackwidow.chinacloudsites.cn/'
axios.interceptors.request.use(function(config) {
 // document.getElementById('g-loader').style.display = 'flex'
 store.commit('requestModify', 1)
 return config;
}, function(error){
 return Promise.reject(error)
})
axios.interceptors.response.use(function(response){
 store.commit('requestModify', -1)
 // document.getElementById('g-loader').style.display = 'none' 
 return response.data;
}, function(error){
 store.commit('requestModify', -1) 
 // document.getElementById('g-loader').style.display = 'none'  
 if(error.response.status === 401){
  Notification({
   title: '权限无效',
   message: '您的用户信息已经失效, 请重新登录',
   type: 'warning',
   offset: 48
  });
  window.location.href = '/#/login'
 }else{
  Notification({
   title: '请求错误',
   message: `${error.response.status} \n ${error.config.url}`,
   type: 'error',
   offset: 48,
  })
 }
 return Promise.reject(error)
})
export default axios

4.

types文件夹中新建vue.d.ts文件,内容:

import {AxiosStatic, AxiosInstance } from 'axios'
declare module 'vue/types/vue' {
 interface Vue {
  $axios: AxiosStatic;
 }
}

这样就可以在各个模块中通过this.$axios来使用axios了

其中axios中:

1. build.rootpath.js内容:

var path = require('path')
var rootpath = path.resolve(__dirname, '../dist')
module.exports = rootpath

2. store是vuex的文件,所以要事先安装vuex

总结

以上所述是小编给大家介绍的vue-cli 引入、配置axios的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 快捷键设置实现代码
Mar 13 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
JS获取页面input控件中所有text控件并追加样式属性
Feb 25 Javascript
在JS数组特定索引处指定位置插入元素的技巧
Aug 24 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
Apr 20 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
JavaScript严格模式详解
Nov 18 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
20170918 前端开发周报之JS前端开发必看
Sep 18 Javascript
jQury Ajax使用Token验证身份实例代码
Sep 22 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 #Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
May 08 #Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
May 08 #Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 #Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 #Javascript
浅谈React 服务器端渲染的使用
May 08 #Javascript
vue.js做一个简单的编辑菜谱功能
May 08 #Javascript
You might like
PHP静态类
2006/11/25 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
asp.net和php的区别点总结
2019/10/10 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
js绘制一条直线并旋转45度
2020/08/21 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
使用python实现rsa算法代码
2016/02/17 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
python__new__内置静态方法使用解析
2020/01/07 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
如何启动时不需输入用户名与密码
2014/05/09 面试题
C#基础面试题
2016/10/17 面试题
实习生自我鉴定
2013/12/12 职场文书
高中军训感言1000字
2014/03/01 职场文书
大家访活动实施方案
2014/03/10 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
小学数学课题方案
2014/06/15 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android