vue.js通過(guò)自定義指令實(shí)現(xiàn)數(shù)據(jù)拉取更新的實(shí)現(xiàn)方法
前言
這篇文章的代碼片段位于 vue 的單文件組件中,即以 .vue 結(jié)尾的文件中,本文說(shuō)明的只是一種實(shí)現(xiàn)方法,既不是唯一的方法也不是最好的方法,如果大家有更好的方法可以留言,大家進(jìn)行討論。
第一步
首先,一定要先定義變量:
// 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>
第三步
接著使用自定義指令,在組件實(shí)例化后,會(huì)自動(dòng)執(zhí)行自定義指令里的方法:
組件實(shí)例化后會(huì)立即以初始值 ifUpdate
為參數(shù)第一次調(diào)用自定義指令 initData
的方法,之后每次參數(shù)值 ifUpdate
變化時(shí)會(huì)再次調(diào)用 initData
的函數(shù),參數(shù)為 ifUpdate
的新值與舊值。
// app.vue <template> // 在頁(yè)面節(jié)點(diǎn)(自由選擇)中綁定自定義指令 <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 時(shí)就會(huì)再次使用上面的 ajax 去獲取數(shù)據(jù) self.vm.ifUpdate = false; } }
使用場(chǎng)景說(shuō)明
用戶評(píng)論后,刷新評(píng)論列表:
首次獲取評(píng)論數(shù)據(jù)后,將 ifUpdate
改為 false
用戶添加評(píng)論后將數(shù)據(jù)傳到后臺(tái),并將 ifUpdate
變?yōu)?true
指令根據(jù) ifUpdate
變化而觸發(fā),再次通過(guò) ajax
從后臺(tái)拉取數(shù)據(jù)
拉取完再將 ifUpdate
重置為 false
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用vue.js能有所幫助,如果有疑問(wèn)大家可以留言交流。
- 解決vue中修改了數(shù)據(jù)但視圖無(wú)法更新的情況
- 解決vue keep-alive 數(shù)據(jù)更新的問(wèn)題
- 解決IE11 vue +webpack 項(xiàng)目中數(shù)據(jù)更新后頁(yè)面沒(méi)有刷新的問(wèn)題
- vue 解決異步數(shù)據(jù)更新問(wèn)題
- Vue 父子組件的數(shù)據(jù)傳遞、修改和更新方法
- 談?wù)剬?duì)vue響應(yīng)式數(shù)據(jù)更新的誤解
- Vue.js 通過(guò)jQuery ajax獲取數(shù)據(jù)實(shí)現(xiàn)更新后重新渲染頁(yè)面的方法
- Vue2.X 通過(guò)AJAX動(dòng)態(tài)更新數(shù)據(jù)
- Vue.js+Layer表格數(shù)據(jù)綁定與實(shí)現(xiàn)更新的實(shí)例
- 詳解vue中的父子傳值雙向綁定及數(shù)據(jù)更新問(wèn)題
- 實(shí)現(xiàn)vuex與組件data之間的數(shù)據(jù)同步更新方式
- VUE 直接通過(guò)JS 修改html對(duì)象的值導(dǎo)致沒(méi)有更新到數(shù)據(jù)中解決方法分析
相關(guān)文章
關(guān)于Vue?"__ob__:Observer"屬性的解決方案詳析
在操作數(shù)據(jù)的時(shí)候發(fā)現(xiàn),__ob__: Observer這個(gè)屬性出現(xiàn)之后,如果單獨(dú)拿數(shù)據(jù)的值,就會(huì)返回undefined,下面這篇文章主要給大家介紹了關(guān)于Vue?"__ob__:Observer"屬性的解決方案,需要的朋友可以參考下2022-11-11vue.js element-ui tree樹形控件改iview的方法
這篇文章主要介紹了vue.js element-ui tree樹形控件改iview的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Vue中數(shù)組與對(duì)象修改觸發(fā)頁(yè)面更新的機(jī)制與原理解析
這篇文章主要介紹了Vue中關(guān)于數(shù)組與對(duì)象修改觸發(fā)頁(yè)面更新的機(jī)制與原理簡(jiǎn)析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12vue實(shí)現(xiàn)移動(dòng)端拖動(dòng)排序
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端拖動(dòng)排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08