vue axios用法

Axios在Vue中的应用
1
axios是vue-resource后出现的Vue请求数据的插件。vue更新到2.0之后,作者尤大就宣告不再对vue-resource更新,而是推荐的axios。

下面我们来使用axios

1
npm install axios --save-dev
1
import axios from "axios"

这时候如果在其它的组件中,是无法使用 axios 命令的。但如果将 axios 改写为 Vue 的原型属性,就能解决这个问题

1
1.    Vue.prototype.$ajax=axios

好像还有另外一种方法,是不需要去修改Vue的原型的,那就是我们除了npm install安装axios依赖以外,再去安装一个vue-axios

1
npm install vue-axios --save-dev<br>import Vueaxios from "vue-axios"

 我都是用第一种方法的,这种没试过,有兴趣大家可以去试试。

在 main.js 中添加了这两行代码之后,就能直接在组件的 methods 中使用 $ajax 命令

1
2
3
4
5
6
7
8
9
10
methods: {
  submitForm () {
    this.$ajax({
      method: 'post',
      url: '你的请求url',
      data: {
        name: 'haha','
      }
   })
}

  上述只是写了发起请求,并没有请求返回数据的回调。

1
2
3
4
5
6
.then(function(res){
  console.log(res)
})
.catch(function(err){
  console.log(err)
})

  这是axios的回调函数,.then为请求成功的回调函数,而.catch为请求失败的回调函数

  这两个回调函数都有各自独立的作用域,如果直接在里面访问 this,无法访问到 Vue 实例,怎么办嘞????

  只要添加一个 .bind(this) 就能解决这个问题

1
2
3
.then(function(res){
  console.log(this.data)
}.bind(this))
### Vue 中使用 Axios 的网络请求指南 在 Vue 项目中,Axios 是一个强大的 HTTP 客户端库,用于发起网络请求。以下是详细的实现方法和示例代码。 #### 1. 安装 Axios 首先需要安装 Axios 库。可以通过 npm 或 yarn 进行安装: ```bash npm install axios ``` 或者 ```bash yarn add axios ``` #### 2. 基本 GET 请求 以下是一个简单的 GET 请求示例,用于从服务器获取数据: ```javascript import axios from 'axios'; axios.get('https://jsonplaceholder.typicode.com/posts/1') .then(response => { console.log(response.data); // 打印返回的数据 }) .catch(error => { console.error('请求失败:', error); }); ``` 此代码发送一个 GET 请求到指定 URL,并处理响应或错误[^1]。 #### 3. 基本 POST 请求 以下是一个 POST 请求的示例,用于向服务器发送数据: ```javascript import axios from 'axios'; axios.post('https://jsonplaceholder.typicode.com/posts', { title: 'foo', body: 'bar', userId: 1 }) .then(response => { console.log(response.data); // 打印返回的数据 }) .catch(error => { console.error('请求失败:', error); }); ``` 此代码发送一个包含 JSON 数据的 POST 请求,并处理响应或错误[^1]。 #### 4. 在 Vue 组件中使用 Axios 可以在 Vue 组件的 `methods` 或生命周期钩子中调用 Axios。例如,在组件的 `mounted` 钩子中发起请求: ```javascript <template> <div> <h1>Post Title: {{ post.title }}</h1> <p>Body: {{ post.body }}</p> </div> </template> <script> import axios from 'axios'; export default { data() { return { post: {} }; }, mounted() { axios.get('https://jsonplaceholder.typicode.com/posts/1') .then(response => { this.post = response.data; // 将返回的数据绑定到组件数据 }) .catch(error => { console.error('请求失败:', error); }); } }; </script> ``` 在此示例中,当组件挂载时,会自动发起请求并将结果绑定到组件的数据属性中[^1]。 #### 5. 全局配置 Axios 为了简化请求配置,可以对 Axios 进行全局配置。例如,设置基础 URL 和超时时间: ```javascript import axios from 'axios'; const instance = axios.create({ baseURL: 'https://jsonplaceholder.typicode.com', timeout: 10000 // 超时时间为 10 秒 }); export default instance; ``` 然后在组件中使用自定义实例: ```javascript import axiosInstance from '@/axios-instance'; export default { mounted() { axiosInstance.get('/posts/1') .then(response => { this.post = response.data; }) .catch(error => { console.error('请求失败:', error); }); } }; ``` 此方法有助于统一管理请求配置[^3]。 #### 6. 处理跨域请求(JSONP) 如果需要处理跨域请求,可以使用 JSONP 技术。虽然 Axios 不直接支持 JSONP,但可以通过插件如 `jsonp` 实现: ```bash npm install jsonp ``` 然后在代码中使用: ```javascript import jsonp from 'jsonp'; jsonp('https://api.example.com/data', null, (err, data) => { if (err) { console.error('JSONP 请求失败:', err); } else { console.log('JSONP 请求成功:', data); } }); ``` 此方法适用于需要绕过同源策略的场景[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值