作为前端人员,在开发过程中,我们大多数情况都需要从后台请求数据,那么在vue中怎样从后台获取数据呢?接下来,我简单介绍一下vue-resource的使用方法,希望对大家有帮助。

一、下载vue-resource

  1、npm install vue-resource --save -dev

  2、github: https://github.com/pagekit/vue-resource

两种方式都可以下载,根据自己喜好进行选择。

二、引入文件

  引入vue.jsvue-resource.js,注意先后顺序,先引vue.js。记住所有vue插件都需要在vue.js之后加载。

  

三、使用

  我今天写了一个小demo,比较简单。

1.HTML

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue-resource请求数据</title>
<link rel="stylesheet" href="../../node_modules/bootstrap/dist/css/bootstrap.min.css">
<script src="../../node_modules/jquery/dist/jquery.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.js"></script>
<script src="../../node_modules/vue/dist/vue.js"></script>
<script src="../../node_modules/vue-resource/dist/vue-resource.js"></script> </head>
<body>
<div class="row" id="paper" style="padding: 20px">
<div class="col-lg-12 col-sm-12 col-xs-12">
<div class="widget radius-bordered">
<div class="widget-header bordered-bottom bordered-themeprimary">
<span class="widget-caption">票据信息列表</span>
</div>
<div class="widget-body">
<div class="query-form">
<div class="row">
<div class="form-group col-md-3">
<input type="text" v-model="paperId">
<div class="horizontal-space"></div>
</div> <div class=" form-group col-md-1">
<button @click="search()" type="button" class="btn btn-primary shiny">查询</button>
<div class="horizontal-space"></div>
</div>
</div>
</div>
<div class="row">
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>票据ID</th>
<th>分店</th>
<th>合作商</th>
<th>票据类型</th>
<th>票据编码</th>
<th>票据金额</th>
</tr>
</thead> <tbody>
<tr v-for="row in paperlist">
<td>{{row.paperId}}</td>
<td>{{row.storeId}}</td>
<td>{{row.partnerId}}</td>
<td>{{row.paperClsNo}}</td>
<td>{{row.paperCode}}</td>
<td>{{row.paperAmt}}</td>
</tr>
</tbody>
</table>
</div> </div>
</div>
</div>
</div> </body>

2.js

所有在页面上绑定的数据都需要在data中声明,否则报错。

 <script>
var vm = new Vue({
el: '#paper',
data: {
paperId: '',
paperlist: []
},
mounted:function() { //钩子函数
this.get();
},
methods: {
get: function(){
this.$http.get('data1.json', {
paperId: this.paperId
}).then(
function(res){
this.paperlist = res.data;
console.log(this.paperlist);
},function(res){
console.log(res.status);
})
},

search: function(){
this.get();
} }
})
</script>

3.相关知识点

(1)钩子函数

钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。(百度百科)

  对于前端来说,钩子函数就是指再所有函数执行前,我先执行了的函数,即 钩住 我感兴趣的函数,只要它执行,我就先执行。

  el被新创建的 vm.el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个文档内元素,当mounted被调用时vm.el替换,并挂载到实例上去之后调用该钩子。如果root实例挂载了一个文档内元素,当mounted被调用时vm.el 也在文档内 
该钩子在服务器端渲染期间不被调用。

(2)vue-resource 提供的便捷方法:

  • get(url, [data], [options]);

  • post(url, [data], [options]);

  • put(url, [data], [options]);

  • patch(url, [data], [options]);

  • delete(url, [data], [options]);

  • jsonp(url, [data], [options]);

都是接受三个参数:

  • url(字符串),请求地址。可被options对象中url属性覆盖。

  • data(可选,字符串或对象),要发送的数据,可被options对象中的data属性覆盖。

  • options  请求选项对象

  便捷方法的POST请求:

 this.$http.post(
'http://example.com',
// 请求体重发送数据给服务端
{
cat: 1,
name: 'newBook'
},{
'headers': {
'Content-Type': 'x-www-form-urlencoded'
}
}).then(function () {
// 成功回调
}, function () {
// 失败回调
});

请求选项对象

option对象的各属性及含义

参数 类型 描述
url string 请求的URL
method string 请求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法
body Object,FormDatastring request body
params Object 请求的URL参数对象
headers Object request header
timeout number 单位为毫秒的请求超时时间 (0 表示无超时时间)
before function(request) 请求发送前的处理函数,类似于jQuery的beforeSend函数
progress function(event) ProgressEvent回调处理函数
credentials boolean 表示跨域请求时是否需要使用凭证
emulateHTTP boolean 发送PUT, PATCH, DELETE请求时以HTTP
emulateJSON boolean 将request body以application/x-www-form-urlencoded content type发送
 

 

  

Vue---从后台获取数据vue-resource的使用方法的更多相关文章

  1. vue 从后台获取数据并渲染到页面

    一.在 created中调用methods中的方法 二.在methods中通过vuex异步获取后台数据 三.在computed 中计算属性 四.页面中调用computed中的计算后的属性 来自为知笔记 ...

  2. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

  3. Swift - 后台获取数据(Background Fetch)的实现

    前面讲了如何让程序申请后台短时运行.但这个额外延长的时间毕竟有限.所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知. 1,后台获取介绍 后台获取(Background Fetch)是 ...

  4. ligerUI---下拉菜单(menubar)动态显示(从后台获取数据)

    写在前面: ligerui的下拉菜单是有点丑的,这也是没有办法的事........这里主要记录下,如何从后台获取数据进行菜单显示. 有两种方式:1.使用json数组来动态添加  2.字符串拼接.  其 ...

  5. jsTree通过AJAX从后台获取数据

    页面代码: <div id="MenuTree"></div> javascript代码: $(document).ready(function ($) { ...

  6. 一、表单和ajax中的post请求&&后台获取数据方法

    一.表单和ajax中的post请求&&后台获取数据方法 最近要做后台数据接收,因为前台传来的数据太过于混乱,所以总结了一下前台数据post请求方法,顺便写了下相对应的后台接收方法. 前 ...

  7. vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据

    在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...

  8. vue模拟后端获取数据——json-server与express

    转载自: https://blog.csdn.net/weixin_39728230/article/details/80293892 https://blog.csdn.net/lxkll/arti ...

  9. aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性

    如题,从后台封装数据,有两种方式渲染节点的数据: 1.全部节点加载 2.根据父节点加载子节点 首先,先介绍下第一种渲染方式: 后台返回数据格式(所有的附加属性,都可放在additionalParame ...

随机推荐

  1. ceph维护

    一个节点挂了,重新添加硬盘并格式化成xfs文件系统挂载到原来的位置后ceph osd无法启动.使用ceph osd tree查看处于down状态.A:移除掉这个osd,1:ceph osd out o ...

  2. sql的一个查询,情景:a表中存在的数据,且在b表中不存在 (not in,not exists

    这里需要强调的是b表中关联字段的值是唯一的这种情况,并且b表尽量是列举类型的,意味着表比较小. ==================== 准备数据: 1. 建两个类似表,test1,test2,只有i ...

  3. C++箴言:理解typename的两个含义 nested dependent name(嵌套依赖名字)

    template<class T> class Widget; // uses "class"template<typename T> class Widg ...

  4. odoo之可选择多个内容显示问题

    <field name="partner_id" widget="many2many_tags" options="{'no_create': ...

  5. Jupyter Notebook中让python2和python3内核共存

    自己计算机里面共存了Python2和Python3,ipython作为试探性的REPL解释器使用的频率还是挺高的,分别在2和3下安装完ipython notebook后怎么分别使用这两种内核呢 按照默 ...

  6. [NOI2003]Editor & [AHOI2006]文本编辑器editor BZOJ1507&BZOJ1269

    分析: Splay区间操作裸题,维护出区间信息,按照要求模拟,注意读入格式,并且考虑内存回收(开不下) 附上代码: #include <cstdio> #include <algor ...

  7. vue中的img src 动态加载本地json的图片路径写法。

    目录: 注意:本地json文件和json文件里的图片地址都必须写在static 静态文件夹里:否则json文件里的url地址找不到. major_info.json文件里的图片路径写法 页面通过v-b ...

  8. 20155217《网络对抗》Exp02 后门原理与实践

    20155217<网络对抗>Exp02 后门原理与实践 实验要求 使用netcat获取主机操作Shell,cron启动. 使用socat获取主机操作Shell,任务计划启动. 使用MSF ...

  9. 浅谈Objeact.clone克隆(纯个人理解,如有错误请指正)

    现在先来看一下jdk给出的Object.clone源码和注释 /** * Creates and returns a copy of this object. The precise meaning ...

  10. python 算法面试题

    1.题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法. def StringSort(data): startIndex=0 endIndex=0 count ...