vuex的dom更新回調問題


https://segmentfault.com/q/1010000007359564

 

根據vue的響應式原理,多次的數據操作之后進行一次的dom更新,所以可以使用$nextTick在dom更新后做些什么。

但是今天我使用了vuex來管理應用狀態,我在組件中發了一個dispatch來觸發某個action,action又觸發mutations來改變狀態,但是在vuex中沒有nextTick這個東西,我無法在dom更新后做些什么

在組件寫的nextTick也不是在vuex更新狀態后觸發的,而是在組件自身的dom更新后觸發,現在也想不出個辦法,求各位大神幫幫忙

this.$store.dispatch("action",{ name: "test", type: "add" }); this.$nextTick(() => { //vuex改變狀態后的dom還沒有更新就執行到這里了 $(".slimscroll-render").eq(index).slimScroll(); $.fn.fullpage.setAllowScrolling(false); });
 

1個回答

1

我也遇到這個問題了,由於后台請求是異步的,所以$.nextTick 並不能正確更新, 我最后的解決辦法是通過watch 來實現的,

 
watch: { itemList: function (val, oldVal) { console.log(val) console.log(oldVal) this.$nextTick(() => { const ms = this.$refs.grid.masonry ms.reloadItems() ms.layout() }) } }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM