2016-04-07 6 views
6

मैं AsyncStorage के साथ आइटम की एक सूची स्टोर करना चाहता हूँ। सूची समय के साथ अद्यतन हो जाएगी।प्रतिक्रिया मूल AsyncStorage के साथ एक सूची संग्रह: कई चाबियाँ या एक?

यहाँ एक राज्य का एक उदाहरण सूची में किया जा सकता है:

[ 
    { 
    name: "Alice", 
    email: "[email protected]" 
    }, 
    { 
    name: "Bob", 
    email: "[email protected]", 
    address: "30 Madison Ave., NY" 
    } 
] 

अब, ऐसा लगता है कि इस सूची के भंडारण के लिए दो विकल्प हैं कि:

  1. स्टोर अपने स्वयं के तहत प्रत्येक संपर्क के तहत एक प्रमुख

को या तो एक लाभ कर रहे हैं कुंजी

  • स्टोर पूरी सूची PPproach - प्रतिक्रिया मूल में क्या पसंद किया जाता है?

  • +3

    की तरह [क्षेत्र] (https एक डेटाबेस लाइब्रेरी का उपयोग पर विचार करें://realm.io/docs/react-native/latest/)। कुंजी/मूल्य से अधिक जटिल डेटा के लिए AsyncStorage पर इसके कई फायदे हैं। – David

    उत्तर

    4

    मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप डेटा का उपयोग, पहुंच और अद्यतन करने की योजना कैसे बनाते हैं। ऐसी कई एसिंकस्टोर विधियां हैं जिनका उपयोग आप किसी भी मामले को आसान बनाने में मदद के लिए कर सकते हैं।

    आप कई चाबियाँ मार्ग जाने के लिए तय करते हैं, multiSet और multiGet पर एक नज़र है, जो आप एक ही समारोह कॉल में कई कुंजी को पुनः प्राप्त करने की अनुमति देता है। और getAllKeys आपको फ्रेडरिक मोटे द्वारा वर्णित दोनों समस्याओं को हल करने, "आपके द्वारा बनाई गई सभी चाबियों के ट्रैक [आईएनजी] ट्रैक" की परेशानी को बचाएगा।

    एक कॉल में कई कुंजियों को अपडेट करने के लिए, multiMerge देखें जो वास्तव में शक्तिशाली तरीका है, mergeItem के समान लेकिन एक साथ कई कुंजी।

    तो, आप देखते हैं कि आप वास्तव में किसी भी मार्ग पर जा सकते हैं। यदि आप अपने डेटा को एकाधिक कुंजियों में विभाजित करते हैं, तो आप शायद ऊपर वर्णित विधियों से परिचित होने में कुछ समय बिताना चाहेंगे।

    और डेविड के सुझाव को रिलेम देने के सुझाव के लिए आपके लिए कुछ मूल्य हो सकता है, फिर भी ... आपकी ज़रूरत के आधार पर।

    3

    उपयोग की आसानी के लिए मैं पूरी तरह से सूची संग्रहित करता हूं; तब से आपको प्रत्येक संपर्क के लिए व्यक्तिगत रूप से बनाए गए सभी कुंजियों का ट्रैक रखने की आवश्यकता नहीं है; और उन्हें लोड/सहेजना आसान होगा (आपके सभी संपर्कों पर लूपिंग के बजाय केवल एक फ़ंक्शन कॉल)।

    लेकिन यह ज्यादातर व्यक्तिगत वरीयता है; दो तरीकों में से किसी के लिए कोई वास्तविक बाधा नहीं है।

    1

    मैं क्रिस और फ्रेडरिक से दो अच्छे उत्तरों में जोड़ूंगा: यह आपकी सूची के आकार और आपके दस्तावेज़ों के आकार पर निर्भर करता है।

    पूरी तरह से एक सूची के साथ जाना प्रबंधन के लिए बहुत आसान है, लेकिन स्केल नहीं करता है (गणना आपके वैश्विक मूल्य के आकार के साथ भारी हो जाएगी)। प्रति आइटम एक कुंजी के साथ जाकर कुछ जटिलता लेकिन स्केल जोड़ता है।

    व्यक्तिगत रूप से मैंने एक कुंजी में सबकुछ शुरू किया, और अब मैं प्रति दस्तावेज़ एक दस्तावेज़ रखने के लिए दोबारा प्रतिक्रिया कर रहा हूं, क्योंकि जब मैं सैकड़ों बड़े दस्तावेज़ों को संसाधित कर रहा हूं, तो प्रदर्शन स्पष्ट रूप से खराब हो जाते हैं।

    और यदि आप हजारों या 10 हजार तत्वों को संभालने वाले हैं, तो मुझे लगता है कि आपको स्क्लाइट या दायरे जैसे उचित डेटाबेस के लिए जाना चाहिए (लेकिन इस समय डीबगिंग एक मुद्दा है)।

    asyncStorage का सच सीमा जानने की रुचि रखते हैं, मैंने कहीं पढ़ा है, यह कुछ मेगाबाइट था जब तक कि आप अपनी मूल config में पूछना यह बढ़ाने के लिए

    संबंधित मुद्दे