Facebook の Flux Architecture を使用して開発された Web アプリがあります。このページには 2 つのビューがあります。1 つは TODO アイテムのリストを表示します。2 番目のビューには、TODO アイテムのランダムなセットが表示されます。
店舗が管理する必要がある懸念事項が明らかに 2 つあります。1 つ目は、利用可能な TODO のリストです。2 つ目は、ランダムに選択された TODO アイテムのリストです。
したがってTODOStore
、利用可能な TODO アイテムを管理することのみに関心を持っている がいます。loadTODOs
、addTODO
、deleteTODO
、へのアクションがありeditTODO
ます。起動時に、このストアはすべての TODO アイテムをロードしません。必要な場合にのみデータベースから TODO 項目のリストを取得したい。
2店舗目はRandomTODOListStore
. ランダムに選択された TODO アイテムを管理するのが役割です。を使用して、 をRandomTODOListStore
介して TODO アイテムにアクセスする必要があるように思えます。TODOStore
TODOStore.getTODOItems()
function RandomTODOListStore() {
var $randomTODOs = [];
dispatcher.register(function(payload) {
var action = payload.action;
switch (action.actionType) {
case Constants.LOAD_RANDOM_TODO:
loadRandomTODO();
break;
}
});
function loadRandomTODO() {
$randomTODOs = selectRandom(TODOStore.getTODOList());
emit("change");
}
}
これに関する問題は、前述のように、TODOStore
が起動時に TODO 項目をロードしないことです。
問題は、「が TODO 項目を既に取得したことをどのようにRandomTODOListStore
保証するのか?」ということです。TODOStore
.