vue ajax axios6,vue全局使用axios插件请求ajax

vue全局使用axios插件请求ajax

Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方宣布停止更新vue-resource,并推荐大家使用axios,越来越多的 Vue 项目,都选择 axios 来完成 ajax 请求,而大型项目会使用 Vuex 来管理数据。

之前一直使用的是 vue-resource插件,在主入口文件引入import VueResource from 'vue-resource'之后,直接使用Vue.use(VueResource)之后即可将该插件全局引用了;

Axios 是一个基于 promise 的 HTTP 库,并没有install方法,所以是不能使用vue.use()方法的。

简单点就是每个文件引用一次,import axios from 'axios';

全局使用的解决方法有很三种:

1.结合 vue-axios使用

2. axios 改写为 Vue 的原型属性

3.结合 Vuex的action

1.结合 vue-axios使用(个人感觉这种方法比较方便)

vue-axios是按照vue插件的方式写的。结合vue-axios,可以去使用vue.use方法。

在主入口文件main.js中引用

import axios from 'axios'

import VueAxios from 'vue-axios'

Vue.use(VueAxios,axios);

之后就可以全局使用this.axios了,在组件文件中的methods里去使用了

getNewsList(){

this.axios.get('api/getNewsList').then((response)=>{

this.newsList=response.data.data;

}).catch((response)=>{

console.log(response);

})

},

2.axios 改写为 Vue 的原型属性

首先在主入口文件main.js中引用,之后挂在vue的原型链上

import axios from 'axios'

Vue.prototype.$ajax= axios

在组件中使用

this.$ajax.get('api/getNewsList')

.then((response)=>{

this.newsList=response.data.data;

})

.catch((response)=>{

console.log(response);

})

3.结合 Vuex的action

在vuex的仓库文件store.js中引用,使用action添加方法

import Vue from 'Vue'

import Vuex from 'vuex'

import axios from 'axios'

Vue.use(Vuex)

const store = new Vuex.Store({

// 定义状态

state: {

user: {

name: 'zack'

}

},

actions: {

// 封装一个 ajax 方法

login (context) {

axios({

method: 'post',

url: '/user',

data: context.state.user

})

}

}

})

export default store

在组件中发送请求的时候,需要使用 this.$store.dispatch

methods: {

submitForm () {

this.$store.dispatch('login')

}

}

其实 Vue 和 axios 可以在一起配合的事情不只是访问和展示一个 API。你也可以和 Serverless Function 通信,向一个有写权限的 API 发送发布/编辑/删除请求等等。由于这两个库的集成很简单直接,它便成为了需要在工作流中集成 HTTP 客户端的开发者的常见选择。

vue全局使用axios的方法

在vue项目开发中,我们使用axios的二次封装,很多人一开始使用axios的方式,会当成vue-resoure的使用方式来用,即在主入口文件引入import VueResource from 'vu ...

vue中采用axios发送请求及拦截器

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在 ...

vue项目使用axios发送请求让ajax请求头部携带cookie

最近做vue项目时遇到登录权限问题,登录以后再发送的请求头部并没有携带登录后设置的cookie,导致后台无法校验其是否登录.检查发现是vue项目中使用axios发送ajax请求导致的.查看文档得知ax ...

把axios挂载到vue实例上面/==Axios 各种请求方式传递参数格式

/*ajax请求*/   import axios from 'axios'   axios.defaults.baseURL = 'https://api.douban.com/v2/movie' ...

vue中使用axios发送请求

我们知道,vue2.0以后,vue就不再对vue-resource进行更新,而是推荐axios,而大型项目都会使用 Vuex 来管理数据,所以这篇博客将结合两者来发送请求 1.安装axios cnpm ...

vue 使用axios 数据请求第三方插件的使用

axios 基于http客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 ...

Vue中使用axios发送ajax请求

作为前后端交互的重要技巧--发送ajax请求,在Vue中我们使用axio来完成这一需求: 首先是下载axios的依赖, npm install --save axios vue-axios 然后在ma ...

随机推荐

清除Android工程中没用到的资源

项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...

Android Drawable 那些不为人知的高效用法

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/43752383,本文出自:[张鸿洋的博客] 1.概述 Drawable在我们平时的 ...

初学JDBC,调用存储过程

在JDBC简单封装的基础上实现 public class UserDao{ public static void testGetUser(String userName) throws Excepti ...

js 解决原型问题的方案 : 构造器和原型的组合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种流行的JavaScript框架,用于开发Web应用程序。Axios是一种用于发送异步请求的JavaScript库,可轻松处理HTTP请求和响应。封装axios并将其应用到Vue全局中,可以让我们在任何Vue组件中调用API时更加方便和简单。 首先,我们需要在Vue应用的main.js文件中引入axios库: ``` import vue from 'vue'; import axios from 'axios'; ``` 这将使我们可以在整个Vue应用中使用axios。然后,我们将向Vue原型添加axios实例,并在全局中进行注册: ``` vue.prototype.$axios = axios; ``` 这使我们可以在每个Vue组件中使用`this.$axios`,从而发送HTTP请求。但是,我们可能还需要在请求之前和之后进行一些操作,例如设置请求头、拦截错误等。因此,我们可以创建一个新的axios实例并对其进行自定义配置,以便在应用程序中进行全局使用。 ``` const axiosInstance = axios.create({ baseURL: "http://example.com/api", headers: { "Content-Type": "application/json" } }) axiosInstance.interceptors.response.use( response => response.data, error => { console.log(error); return Promise.reject(error); } ); vue.prototype.$axios = axiosInstance; ``` 这样,我们可以使用`this.$axios`来发出修改后的HTTP请求,并在发送请求之前和之后执行我们的操作。我们还可以使用拦截器对响应进行预处理,以便在需要时对响应进行统一处理。最后,封装Axios方法可以根据项目需求进行自定义配置,以提高效率并使代码更加可读。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值