在 Vue.js 中可以用许多方式实现 Ajax 请求:
1. 使用原生 XMLHttpRequest 对象:
new Vue({
methods: {
loadData() {
const xhr = new XMLHttpRequest()
xhr.open('GET', '/api/data')
xhr.send()
}
}
})
2. 使用 axios 库:
import axios from 'axios'
new Vue({
methods: {
loadData() {
axios.get('/api/data')
.then(response => {
// success
})
.catch(error => {
// error
})
}
}
})
axios 是一个基于 promise 的 HTTP 库,可以让我们更简单地进行 Ajax 请求。
3. 使用 vue-resource:
import VueResource from 'vue-resource'
Vue.use(VueResource)
new Vue({
methods: {
loadData() {
this.$http.get('/api/data')
.then(response => {
// success
})
.catch(error => {
// error
})
}
}
})
vue-resource 是 Vue.js 的一个 Ajax 插件,可以非常简单地发送 GET, POST, PUT, DELETE 请求。
4. 使用 Composition API 的 fetch():
import { ref, fetch } from '@vue/composition-api'
const data = ref(null)
fetch('/api/data')
.then(res => res.json())
.then(json => {
data.value = json
})
Composition API 提供的 fetch() 方法可以直接发送 Ajax 请求。
举例,使用 axios 发送 GET 请求:
methods: {
loadData() {
axios.get('/api/data')
.then(response => {
this.someData = response.data
})
.catch(error => {
console.log(error)
})
}
}
<button @click="loadData">Load Data</button>
<p>{{ someData }}</p>
点击按钮,会发送 GET 请求,将数据存储在 someData 中,并渲染到页面。