vue.js通過自定義指令實現數據拉取更新的實現方法
前言
這篇文章的代碼片段位于 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>
第三步
接著使用自定義指令,在組件實例化后,會自動執(zhí)行自定義指令里的方法:
組件實例化后會立即以初始值 ifUpdate 為參數第一次調用自定義指令 initData 的方法,之后每次參數值 ifUpdate 變化時會再次調用 initData 的函數,參數為 ifUpdate 的新值與舊值。
// app.vue <template> // 在頁面節(jié)點(自由選擇)中綁定自定義指令 <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 變?yōu)?true
指令根據 ifUpdate 變化而觸發(fā),再次通過 ajax 從后臺拉取數據
拉取完再將 ifUpdate 重置為 false
總結
以上就是這篇文章的全部內容,希望本文的內容對大家學習或者使用vue.js能有所幫助,如果有疑問大家可以留言交流。
- 解決vue中修改了數據但視圖無法更新的情況
- 解決vue keep-alive 數據更新的問題
- 解決IE11 vue +webpack 項目中數據更新后頁面沒有刷新的問題
- vue 解決異步數據更新問題
- Vue 父子組件的數據傳遞、修改和更新方法
- 談談對vue響應式數據更新的誤解
- Vue.js 通過jQuery ajax獲取數據實現更新后重新渲染頁面的方法
- Vue2.X 通過AJAX動態(tài)更新數據
- Vue.js+Layer表格數據綁定與實現更新的實例
- 詳解vue中的父子傳值雙向綁定及數據更新問題
- 實現vuex與組件data之間的數據同步更新方式
- VUE 直接通過JS 修改html對象的值導致沒有更新到數據中解決方法分析
相關文章
關于Vue?"__ob__:Observer"屬性的解決方案詳析
在操作數據的時候發(fā)現,__ob__: Observer這個屬性出現之后,如果單獨拿數據的值,就會返回undefined,下面這篇文章主要給大家介紹了關于Vue?"__ob__:Observer"屬性的解決方案,需要的朋友可以參考下2022-11-11
vue.js element-ui tree樹形控件改iview的方法
這篇文章主要介紹了vue.js element-ui tree樹形控件改iview的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

