2015-10-20 66 views
0

我創建與流量的應用程序和反應,這是有點兒遊戲......和這個程序有3個店:通量變化專賣店等賣場

GameStore - >包含這樣完了,怎麼比賽狀態很多次玩家贏了,這東西

CounterStore - >是一個倒數存儲,每1秒自觸發一次,計數器組件自我更新。

BlockStore - >這與遊戲組件有關,它們是用戶可以進行交互的塊。

所以,每當我點擊一個塊,我觸發一個動作,並在BlockStore上得到它。 BlockStore會做一些魔術,並確定被點擊的塊是否正確,如果是,它會更新GameStore(用戶點擊正確塊的次數)並更新CounterStore(這增加了用戶的計時器)。

此外,每當CounterStore變爲0時,它也會更改GameStore以設置用戶已丟失。

這種感覺完全錯誤,我的商店他們以某種方式連接......每個行爲都會改變幾乎所有的商店,但有些行爲取決於商店的結果,以改變其他商店(這令人困惑:S)。

我想知道我是否以正確的方式進行操作,也許我應該將所有東西放在一個商店中(這會使其難以維護),或者刪除一些商店並將其作爲組件處理直接狀態(例如計數器)。

我迷失在這裏。

回答

0

https://facebook.github.io/flux/docs/overview.html拉到:

商店包含應用程序的狀態和邏輯。它們的作用有點類似於傳統MVC中的模型,但它們管理許多對象的狀態 - 它們並不代表像ORM 模型那樣的單個數據記錄。它們也不如Backbone的系列產品。超過 僅管理ORM樣式對象的集合,存儲管理應用程序內的特定域的應用程序狀態 。

您的GameStore應該不應該爲每個塊保留信息。 BlockStore應該保存塊和與各個塊有關的數據。由於您有其他描述遊戲整體狀態的數據,因此我建議擁有專門用於保持該狀態的第二家商店(即可容納櫃檯的國家商店,正在進行/已完成,得分等)。

+0

感謝Alex的回答,實際上我的GameStore沒有保存每個塊的信息。它只保存與遊戲有關的信息,如完成時間或用戶贏得次數等。 問題是我必須根據BlockStore分析的數據更改GameStore ...如果我點擊了正確的Block,GameStore也應該改變,以更新它的狀態,說明我點擊了多少次正確的塊 –

+0

另外,BlockStore也改變CounterStore ...如果我點擊正確的塊,我增加計數器,否則我減少它。我真的不知道這是否是適合Flux的應用程序:/ –

+0

@MauricioSoares可以從BlockStore發送更新CounterStore/GameStore中的值的動作。我仍然建議將CounterStore和GameStore結合到一個商店中。如果你決定走一條將所有東西放在一個商店中的路線,我會將商店專用於所有數據,並抽取任何將數據變爲單獨控制器的方法/函數。 – Alex