get:获取数据
post:提交数据(表单提交、文件上传)
put:更新数据(所有数据推送到后端)
patch:更新数据(只推送修改的数据到后端)
delete:删除数据
(1)get的第一种写法(使用json格式数据来模拟接口实现axios的使用)
在public文件夹下新建一个data.json文件
在vue中简单使用
<template>
<div>home</div>
</template>
<script>
import axios from 'axios'
export default {
created() {
axios.get('data.json').then((res) => {
console.log(res) //输出当前的请求
})
},
}
</script>
在控制台查看输出~
get方法有时候是带参的,这时候需要在路径后面添加对象params
<script>
import axios from 'axios'
export default {
created() {
axios.get('/data.json', {
params: {
id: 12,
//最终请求路径是:http://localhost:8080/data.json?id=12
},
})
.then((res) => {
console.log(res)
})
},
}
</script>
(2) get的第二种写法
<script>
import axios from 'axios'
export default {
created() {
axios({
method: 'get',
url: '/data.json',
}).then((res) => {
console.log(res)
})
},
}
</script>
同样也能在控制台中查看res输出内容
这种方法如果需要传递参数,直接添加params
import axios from 'axios'
export default {
created() {
axios({
method: 'get',
url: '/data.json',
params: {
id: 12,
},
}).then((res) => {
console.log(res)
})
},
}
post请求有三个参数
axios.post(/url,{},config) 第一个参数为请求路径,第二个参数为请求的数据,这其中,post请求数据有两种,一种是form-data(表单提交,文件上传,图片上传),另一种是application/json
第一种post请求写法(模拟application/json格式的数据)
export default {
created() {
let data = {
id: 12,
} //模拟
axios.post('/lujing', data).then((res) => {
console.log(res)
})
},
}
第二种post请求写法(模拟application/json格式的数据)
export default {
created() {
let data = {
id: 12,
}
axios({
method: 'post',
url: '/lujing',
data: data, //第一个data为post参数里第二个参数
}).then((res) => {
console.log(res)
})
},
}
post第一种写法(模拟form-data格式的数据)
export default {
created() {
let data = {
id: 12,
}
let formData = new FormData()
for (let key in data) {
formData.append(key, data[key])
} //模拟formData
axios.post('/lujing', formData).then((res) => {
console.log(res)
})
},
}
post第二种写法(模拟form-data格式的数据)
export default {
created() {
let data = {
id: 12,
}
let formData = new FormData()
for (let key in data) {
formData.append(key, data[key])
} //模拟formData
axios({
method: 'post',
url: 'lujing',
data: formData,
})
},
}
export default {
created() {
let data = {
id: 12,
}
let formData = new FormData()
for (let key in data) {
formData.append(key, data[key])
}
//put
axios.put('lujing', data).then((res) => {
console.log(res)
})
},
}
export default {
created() {
let data = {
id: 12,
}
let formData = new FormData()
for (let key in data) {
formData.append(key, data[key])
}
//patch
axios.patch('lujing', data).then((res) => {
console.log(res)
})
},
}
delete第一种写法
export default {
created() {
axios
.delete('/lujing', {
params: {
id: 12,
},
})
.then((res) => {
console.log(res)
})
},
}
delete第二种写法
export default {
created() {
axios({
url: '/lujing',
method: 'post',
params: {
id: 12,
},
})
},
}
并发请求:同时进行多个请求,并统一处理返回值。比如一个聊天系统,需要同时展示个人信息和好友列表,但是个人信息和好友列表是两个接口,这时候需要同时处理两个接口,这时候就需要用到并发请求了
并发请求需要用到两个方法,分别是axios.all()和axios.spread()
<script>
import axios from 'axios'
export default {
created() {
axios.all([axios.get('/data.json'), axios.get('/city.json')]).then(
axios.spread((dataRes, cityRes) => {
//用axios.spread()方法代替以前的res,有几个接口就有几个返回值
console.log(dataRes, cityRes)
})
)
},
}
</script>