DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> vue.js通過自定義指令實現數據拉取更新的實現方法
vue.js通過自定義指令實現數據拉取更新的實現方法
編輯:關於JavaScript     

前言

這篇文章的代碼片段位於 vue 的單文件組件中,即以 .vue 結尾的文件中,本文說明的只是一種實現方法,既不是唯一的方法也不是最好的方法,如果大家有更好的方法可以留言,大家進行討論。

第一步

首先,一定要先定義變量:

// app.vue <script>

data () {  
  return {
   // 定義 getData
   getData:{},
   // 定義自定義指令的綁定值
   ifUpdate:true
  }
}

第二步

然後要使用 ajax 的話,要在 index.html 裡引入 jquery,這樣就可以全局使用了:

// index.html

<script type="text/javascript" src="./lib/js/jquery-2.1.1.min.js"></script>

第三步

接著使用自定義指令,在組件實例化後,會自動執行自定義指令裡的方法:

組件實例化後會立即以初始值 ifUpdate 為參數第一次調用自定義指令 initData 的方法,之後每次參數值 ifUpdate 變化時會再次調用 initData 的函數,參數為 ifUpdate 的新值與舊值。

// app.vue <template>

// 在頁面節點(自由選擇)中綁定自定義指令
<div v-initData="ifUpdate" ></div>
// app.vue <script>

// 定義自定義指令
directives:{
  initData:function(val, oldVal){
   if(!val){
    return;
   }
   var self = this;
   $.getJSON( "ajax/test.json", function( data ) {
     self.vm.getData = data;
   });
   // 下次 ifUpdate 值更新為 true 時就會再次使用上面的 ajax 去獲取數據
   self.vm.ifUpdate = false;
  }
}

使用場景說明

用戶評論後,刷新評論列表:

     首次獲取評論數據後,將 ifUpdate 改為 false

     用戶添加評論後將數據傳到後台,並將 ifUpdate 變為 true

     指令根據 ifUpdate 變化而觸發,再次通過 ajax 從後台拉取數據

     拉取完再將 ifUpdate 重置為 false

總結

以上就是這篇文章的全部內容,希望本文的內容對大家學習或者使用vue.js能有所幫助,如果有疑問大家可以留言交流。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved