邏輯我不知道如何組織我的Vuex商店給出以下問題。Vuex:觀察狀態
我有一個按鈕/操作數組,像100個。他們都在店裏像這樣的組織:
buttons: [
{
text: 'Button 1',
doAction (store) {},
mustShow (store) {
return state.variable > 10 && state.variable2.counter < 12 && !state.variable3
}
}
...
]
我可以很容易地在我的視圖中顯示他們和他們的行動鏈接到點擊事件:
<button v-for"button in buttons" @click="button.doAction()"></button>
的問題是,每個按鈕可以顯示或者不基於它只知道的任意複雜邏輯,正如您在mustShow
函數中看到的那樣。每個按鈕都有其獨特的邏輯。
我可以很容易地僅返回其mustShow
函數返回真有隻必須在店裏的特定狀態下顯示的動作按鈕的吸氣劑:
availableActions (state) {
return state.buttons.filter(s => s.mustShow())
}
這工作的第一次,但問題是,當然這個getter沒有反應,因爲它沒有綁定到狀態變量,而是綁定到一個沒有反應的函數的結果。
你將如何組織代碼來完成這項工作?當然,人們可以將所有按鈕的顯示邏輯放入單個獲取器中。但是如果我希望按鈕的名稱也是動態的(作爲基於狀態中的任意變量計算其值的函數的結果)呢?
感謝
那麼,基本上doAction(和mustShow)應該是一個具有長開關的大規模動作呢? – pistacchio
這實際上取決於你點擊每個按鈕時會做什麼,如果你認爲你需要一個巨大的開關,你可能會考慮將vuex代碼進一步分割爲應用程序每個部分的模塊。 或者你可以像'btnAtions [1] =()=> {/ *按鈕1邏輯* /}'等等對每個id – Batato
看看這個[vuex模塊](https:// vuex .vuejs.org/en/modules.html),它可能真的幫助你。 – Batato