1. 程式人生 > >Vue---從後臺獲取數據vue-resource的使用方法

Vue---從後臺獲取數據vue-resource的使用方法

獲取 root input lang url styles table 取數據 perl

  作為前端人員,在開發過程中,我們大多數情況都需要從後臺請求數據,那麽在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

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4    <meta charset="UTF-8">
 5    <title>vue-resource請求數據</title>
 6    <link rel="stylesheet" href="../../node_modules/bootstrap/dist/css/bootstrap.min.css">
 7    <script src="../../node_modules/jquery/dist/jquery.js"
></script> 8 <script src="../../node_modules/bootstrap/dist/js/bootstrap.js"></script> 9 <script src="../../node_modules/vue/dist/vue.js"></script> 10 <script src="../../node_modules/vue-resource/dist/vue-resource.js"></script> 11 12 </head> 13 <body> 14
<div class="row" id="paper" style="padding: 20px"> 15 <div class="col-lg-12 col-sm-12 col-xs-12"> 16 <div class="widget radius-bordered"> 17 <div class="widget-header bordered-bottom bordered-themeprimary"> 18 <span class="widget-caption">票據信息列表</span> 19 </div> 20 <div class="widget-body"> 21 <div class="query-form"> 22 <div class="row"> 23 <div class="form-group col-md-3"> 24 <input type="text" v-model="paperId"> 25 <div class="horizontal-space"></div> 26 </div> 27 28 <div class=" form-group col-md-1"> 29 <button @click="search()" type="button" class="btn btn-primary shiny">查詢</button> 30 <div class="horizontal-space"></div> 31 </div> 32 </div> 33 </div> 34 <div class="row"> 35 <table class="table table-bordered table-hover"> 36 <thead> 37 <tr> 38 <th>票據ID</th> 39 <th>分店</th> 40 <th>合作商</th> 41 <th>票據類型</th> 42 <th>票據編碼</th> 43 <th>票據金額</th> 44 </tr> 45 </thead> 46 47 <tbody> 48 <tr v-for="row in paperlist"> 49 <td>{{row.paperId}}</td> 50 <td>{{row.storeId}}</td> 51 <td>{{row.partnerId}}</td> 52 <td>{{row.paperClsNo}}</td> 53 <td>{{row.paperCode}}</td> 54 <td>{{row.paperAmt}}</td> 55 </tr> 56 </tbody> 57 </table> 58 </div> 59 60 61 </div> 62 </div> 63 </div> 64 </div> 65 66 </body>

2.js

所有在頁面上綁定的數據都需要在data中聲明,否則報錯。

 1 <script>
 2    var vm = new Vue({
 3       el: ‘#paper‘,
 4       data: {
 5          paperId: ‘‘,
 6          paperlist: []
 7       },
 8       mounted:function() { //鉤子函數
 9          this.get();
10       },
11       methods: {
12          get: function(){
13             this.$http.get(‘data1.json‘, {
14                paperId: this.paperId
15             }).then(
16                   function(res){
17                      this.paperlist = res.data;
18                      console.log(this.paperlist);
19                   },function(res){
20                      console.log(res.status);
21                   })
22          },
23 
24          search: function(){
25             this.get();
26          }
27 
28       }
29    })
30 </script>

3.相關知識點

(1)鉤子函數

鉤子函數是Windows消息處理機制的一部分,通過設置“鉤子”,應用程序可以在系統級對所有消息、事件進行過濾,訪問在正常情況下無法訪問的消息。鉤子的本質是一段用以處理系統消息的程序,通過系統調用,把它掛入系統。(百度百科)

  對於前端來說,鉤子函數就是指再所有函數執行前,我先執行了的函數,即 鉤住 我感興趣的函數,只要它執行,我就先執行。

  el被新創建的 vm.el調rootmounted調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請求:

 1 this.$http.post(
 2     ‘http://example.com‘, 
 3     // 請求體重發送數據給服務端
 4     {
 5         cat: 1,
 6         name: ‘newBook‘
 7     },{
 8         ‘headers‘: {
 9             ‘Content-Type‘: ‘x-www-form-urlencoded‘
10         }
11     }).then(function () {
12         // 成功回調
13     }, function () {
14         // 失敗回調
15     });

請求選項對象

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的使用方法