文章目录
- 快捷方法列表
- 配置信息命令
- 响应
- 源码
- html中的源码
- json文件中的源码
- 结果
- 分析
- 版本:
vue-resource v1.2.1
- 作用:
Vue与后台Api进行交互通常是利用vue-resource
来实现的,本质上vue-resource
是通过http
来完成AJAX
请求相应的。
- 用法:
Vue
实例对象注册this.$http
服务,可以发送HTTP
请求。解析请求所返回的结果。此外,Vue
实例将会自定绑定到this
所在的回调函数中。
{
// GET /someUrl
this.$http.get('/someUrl').then(response => {
// success callback
}, response => {
// error callback
});
}
快捷方法列表
get(url, [config])
head(url, [config])
delete(url, [config])
jsonp(url, [config])
post(url, [body], [config])
put(url, [body], [config])
patch(url, [body], [config])
配置信息命令
参数 | 类型 | 描述 |
url |
| 发送 |
body |
| 作为请求主体发送的数据 |
headers |
| 将作为HTTP请求标头发送的Headers对象 |
params |
| 要作为URL参数发送的参数对象 |
method |
| HTTP方法(例如GET、POST、…) |
responseType |
| 响应主体的类型(例如文本、blob、json、…) |
timeout |
| 请求超时(以毫秒为单位)(0表示没有超时) |
credentials |
| 指示是否应该使用凭据发出跨站点访问控制请求 |
emulateHTTP |
| 使用HTTP POST发送PUT、PATCH和DELETE请求,并设置 |
before |
| 回调函数,用于在发送请求对象之前修改它 |
uploadProgress |
| 处理上传进程的回调函数 |
downloadProgress |
| 回调函数来处理下载的进度 |
响应
属性 | 类型 | 描述 |
url |
| 返回原始的URL |
body |
| 响应体 |
headers |
| 响应头对象 |
ok |
| HTTP状态码在200到299之间 |
status |
| HTTP状态码的响应 |
statusText |
| 响应的HTTP状态文本 |
方法 | 类型 | 描述 |
text() |
| 将主体解析为字符串 |
json() |
| 将主体解析为解析的JSON对象 |
blob() |
| 将主体解析为Blob对象 |
源码
下面我将以get
请求访问json
文件的方式来展示vue-resource
的用法。
html中的源码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue-router</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="item in list">{{item.name}}</li>
</ul>
<button @click="getData">get请求</button>
</div>
<script src="../../../js/vue/vue/1.0/vue.js"></script>
<script src="../../../js/vue/vue-resource/1.2.1/vue-resource.js"></script>
<script type="application/javascript">
var vm = new Vue({
el:'#app'
,data:{
list:[]
}
,methods:{
getData(){
var url = '../json/get.json';
this.$http.get(url).then(function(res){
var body = res.body;
if(body.status){
alert('请求出错!');
}
this.list = body.message;
});
}
}
});
</script>
</body>
</html>
json文件中的源码
{
"status":0
,"message":[
{
"id":1
,"name":"张三"
}
,{
"id":2
,"name":"李四"
}
]
}
结果
分析
上面的代码实现的功能是在页面中通过点击button
按钮来触发一个getData
的click
响应事件,而该事件实现的功能是发送一个url
请求(尽管说其请求的是本地的json
文件数据,不过其请求后台的方法和该方法是一模一样的,所以说其用于请求后台的数据也是同样的用法。),该请求返回url
链接所响应的数据。而该返回数据将会在then()
回调函数中进行相应的处理,比如说我们的json
文件中就返回了status
响应状态码,其中0
代表成功,否则失败。而一旦响应成功,则调用body.message
,将相应的数据主体绑定到data
数据域中的list
中,由于list
中的数据有变动,因而Vue
会自定的刷新li
的v-for
中的页面信息,进而完成页面信息的更新操作。