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 mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
工作中常用到的JS表单验证代码(包括例子)
Nov 11 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
Mar 07 Javascript
根据选择不同的下拉值出现相对应的文本输入框
Aug 01 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
JavaScript中的getDay()方法使用详解
Jun 09 Javascript
js获取鼠标位置实例详解
Dec 09 Javascript
微信小程序 图片上传实例详解
May 05 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
在vue中使用setInterval的方法示例
Apr 16 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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
如何在PHP中使用正则表达式进行查找替换
2013/06/13 PHP
PHP生成树的方法
2015/07/28 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
微信小程序实现循环动画效果
2018/07/16 Javascript
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python mysqldb连接数据库
2009/03/16 Python
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
python字符串下标与切片及使用方法
2020/02/13 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python常用外部指令执行代码实例
2020/11/05 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
Farnell德国:电子元器件供应商
2018/07/10 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
董事长助理工作职责
2014/06/08 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python