2017-10-05 120 views
1

什麼是從組件中聆聽店內吸氣劑的正確方法?商店取消訂閱與觀察者

手錶是否應該使用,還是應該訂閱?

這是目前我在做什麼:

this.watcher_handle = this.$watch(() => { 
    return this.$store.getters.someValue; 
}, (new_value, old_value) => { 
    // Do something cool 
}); 

是什麼在兩個優點有什麼區別?

回答

1

根據documentation你想要做這樣的事情。

import { mapGetters } from 'vuex' 

export default { 
    // ... 
    computed: { 
    // mix the getters into computed with object spread operator 
    ...mapGetters([ 
     'doneTodosCount', 
     'anotherGetter', 
     // ... 
    ]) 
    } 
} 

這將是「正確的方式」。

有關由該組件執行異步或昂貴的操作watchers and computed properties並且當watchers should be used基本上之間的差的VUE文檔會談。我意識到vuex方法與計算屬性略有不同,但是當沒有其他更好的方法存在時,要使用watch這一點。

訂閱vuex方法的主要好處與您爲什麼首先使用vuex相同:抽象您的商店並強制執行可預測的數據流。

在您的示例中,//Do something cool部分將被抽象爲您的vuex函數,這些函數使您的組件更簡單,並且可以使該特定功能可重用。

爲什麼使用vuex作爲你的商店,然後不使用它的存取方法?我認爲這與使用vue-router類似,但仍然在組件方法中進行URL操作。

+0

是的,但是這樣做,使用手錶還是訂閱有什麼區別? – Sean

相關問題