में स्टोर डेटा निर्भरता प्रबंधित करना मेरे पास फेसबुक के फ्लक्स आर्किटेक्चर का उपयोग करके एक वेब ऐप विकसित किया गया है। पृष्ठ में दो विचार हैं: एक TODO आइटम की एक सूची प्रदर्शित करता है। दूसरा दृश्य TODO आइटमों का यादृच्छिक सेट प्रदर्शित करता है।प्रतिक्रिया/प्रवाह
स्पष्ट रूप से दो चिंताएं हैं जिन्हें स्टोर द्वारा प्रबंधित करने की आवश्यकता है। पहला उपलब्ध TODO की सूची है। दूसरा यादृच्छिक रूप से चयनित TODO आइटमों की सूची है।
इस प्रकार मेरे पास TODOStore
है, जो चिंता केवल उपलब्ध TODO आइटमों का प्रबंधन करने का है। इसमें loadTODOs
, addTODO
, deleteTODO
, editTODO
पर कार्रवाई है। स्टार्टअप पर, यह स्टोर सभी TODO आइटम लोड नहीं करता है। मैं चाहता हूं कि जब आवश्यक हो तो डेटाबेस से TODO आइटमों की सूची पुनर्प्राप्त करें।
दूसरा स्टोर RandomTODOListStore
है। यादृच्छिक रूप से चयनित TODO आइटमों का प्रबंधन करना ज़िम्मेदारी है। मुझे लगता है कि RandomTODOListStore
को TODOStore
के माध्यम से TODOStore.getTODOItems()
का उपयोग करके TODO आइटमों तक पहुंच प्राप्त करनी चाहिए।
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 आइटम लोड नहीं करता है।
सवाल यह है: "कैसे RandomTODOListStore
गारंटी नहीं है कि पहले से ही TODOStore
TODO आइटम लिया गया है करता है"।
हाँ, मैंने इसके बारे में सोचा था। समस्या यह है कि TODOStore को इस पर ध्यान नहीं देना चाहिए कि दूसरे इसका उपयोग कैसे कर रहे हैं। इसे RandomTODOListStore क्रियाओं पर प्रतिक्रिया नहीं देनी चाहिए। कल्पना कीजिए कि हर बार मेरे पास कुछ और चीज है जो TODO आइटमों की आवश्यकता होती है, TODOStore बहुत तेजी से फूला जा रहा है। – rafalotufo
@rafalotufo मेरा संपादन देखें –