Computer >> कंप्यूटर ट्यूटोरियल >  >> नेटवर्किंग >> इंटरनेट

रिएक्ट नेटिव में कनेक्शन स्थिति के बारे में उपयोगकर्ताओं को आसानी से ट्रैक और सूचित करें

रिएक्ट नेटिव में कनेक्शन स्थिति के बारे में उपयोगकर्ताओं को आसानी से ट्रैक और सूचित करें <पी> जोर्डी वैन डेन आर्डवेग

द्वारा <पी> समय-समय पर मैं उन तकनीकों का निर्माण और अन्वेषण करना पसंद करता हूं जिनके लिए एक फ्रीलांस फ्रंटएंड डेवलपर के रूप में मेरे दैनिक जीवन में मेरे पास समय नहीं है। हाल ही में, मैं रिएक्ट नेटिव की खोज कर रहा हूं और कुछ नए टूल और एपीआई में गोता लगा रहा हूं।

<पी> लेकिन एक नेटिव ऐप बनाना वेब ऐप बनाने से थोड़ा अलग है। मैं हाल ही में एक ऐसे परिदृश्य में आया जहां उपयोगकर्ता के पास कोई सक्रिय इंटरनेट कनेक्शन नहीं है।

<पी> फिर हम उपयोगकर्ता को कैसे सूचित करेंगे कि हमारे ऐप की क्षमताएं सीमित हैं?

<पी> रिएक्ट नेटिव में कनेक्शन स्थिति के बारे में उपयोगकर्ताओं को आसानी से ट्रैक और सूचित करें _फ़ोटो द्वारा [अनस्प्लैश](https://unsplash.com/photos/ZYecenZy7o4?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText" rel=”noopener” target=”_blank” title=””>गैलेन क्राउट blank” title=”) <पी> जब आप नेटवर्क कनेक्टिविटी की आवश्यकता वाला ऐप बना रहे हैं, तो आपको विफल अनुरोधों के उचित प्रबंधन की आवश्यकता होती है। उदाहरण के लिए, जब उपयोगकर्ता का इंटरनेट कनेक्शन लुका-छिपी खेलने का निर्णय लेता है। इसलिए हमारा ऐप उपयोगकर्ता को सूचित कर सकता है कि अनुरोध विफल क्यों होता है या अनुरोध को सक्रिय होने से भी रोक सकता है। और इससे भी बेहतर:हमारे उपयोगकर्ता को एक उपयोगी संदेश दिखाएं जिसमें बताया जाए कि क्या हो रहा है, ताकि वे उस पर कार्रवाई कर सकें।

<पी> दूसरे शब्दों में, हम कुछ संदर्भ दे सकते हैं हमारे उपयोगकर्ताओं को यह बताना कि ऐप एक निश्चित अनुरोध क्यों नहीं कर सकता।

Redux बनाम कॉन्टेक्स्ट एपीआई

<पी> रिएक्ट नेटिव समुदाय उपयोगकर्ता के नेटवर्क कनेक्शन के बारे में जानकारी प्रदर्शित करने के लिए एक नेटइन्फो मॉड्यूल प्रदान करता है, जैसे कि यह ऑनलाइन या ऑफलाइन है। हमें इस डेटा को हमारे ऐप में विश्व स्तर पर उपलब्ध कराने की आवश्यकता है।

<पी> एक सामान्य विचार यह होगा कि इसके लिए Redux का उपयोग किया जाए। मेरा ऐप पहले से ही Redux का उपयोग करता है, तो इसके लिए Redux का उपयोग क्यों न करें?

<पी> खैर, निःसंदेह, हम कर सकते थे। लेकिन यदि हम इस कनेक्टिविटी जानकारी का उपयोग करना चाहते हैं तो इसके लिए प्रत्येक घटक को Redux स्टोर से जोड़ना आवश्यक है। Redux से जुड़ने से ओवरहेड, कोड की अधिक पंक्तियाँ बनती हैं और यह हमारे ऐप को आवश्यकता से अधिक जटिल बना सकता है।

<पी> आइए अन्य संभावनाएं तलाशें…

<पी> रिएक्ट का कॉन्टेक्स्ट एपीआई सरल प्रदान करता है , क्लीनर हमारे घटकों के माध्यम से राज्य जैसा डेटा साझा करने का तरीका:

<पी> संदर्भ को उस डेटा को साझा करने के लिए डिज़ाइन किया गया है जिसे रिएक्ट घटकों के पेड़ के लिए "वैश्विक" माना जा सकता है, जैसे कि वर्तमान प्रमाणित उपयोगकर्ता, थीम या पसंदीदा भाषा। — स्रोत

<पी> ऐसा लगता है जैसे हमारे पास रिएक्ट के नए कॉन्टेक्स्ट एपीआई का उपयोग करने के लिए एक आदर्श उपयोग मामला है!

आइए गोता लगाएँ

<पी> सबसे पहले, हमें आवश्यक पैकेज स्थापित करना होगा, क्योंकि रिएक्ट नेटिव 0.59 में NetInfo मॉड्यूल एक अलग पैकेज में है. रिएक्ट 16.6 या बाद का संस्करण भी आवश्यक है क्योंकि यह संदर्भ को रेंडर विधियों के बाहर उपलब्ध होने की अनुमति देता है। काफी उपयोगी है, क्योंकि इससे जहां हम इस संदर्भ का उपयोग करते हैं वहां हमें अधिक लचीलापन मिलता है।

<पी> मैं आपको रिएक्ट नेटिव ऐप सेट करने में परेशान नहीं करूंगा और मान लूंगा कि आपके पास पहले से ही एक है।

<पी> आइए NetInfo इंस्टॉल करें पैकेज:

npm install @react-native-community/netinfo --save
<पी> एक बार इंस्टॉल हो जाने पर, हम अपने घटक बना सकते हैं।

<पी> संदर्भ प्रदाता बनाना
आइए <NetworkProvide सेट करें आर> घटक। यह घटक हमारी कनेक्टिविटी स्थिति को हमारे सभी चाइल्ड घटकों तक पहुंचाता है:

<पी> जैसा कि ऊपर दिखाया गया है, हम केवल connectionChange सुनते हैं घटना. वह ईवेंट true लौटाता है जब कोई सक्रिय इंटरनेट कनेक्शन हो या false जब उपयोगकर्ता के पास कोई सक्रिय इंटरनेट कनेक्शन न हो. कनेक्टिविटी स्थिति बदलने पर हम स्थिति को अपडेट करते हैं।

<पी> जैसे ही हम स्थिति को अद्यतन करते हैं, हमारे घटक वृक्ष में संदर्भ बदल जाता है। इसलिए प्रत्येक घटक के पास अद्यतन isConnected तक पहुंच है मूल्य. Redux के समान, लेकिन बहुत कम बॉयलरप्लेट कोड के साथ।

<पी> संदर्भ प्रदाता को लपेटना
रिएक्ट के कॉन्टेक्स्ट एपीआई को काम करने के लिए, हमें इसे <NetworkProvide लपेटना होगा r> घटक हमने अभी-अभी अपने अन्य घटकों के आसपास बनाया है, जैसे:

<पी> ऐसा करके हम context बनाते हैं <NetworkProvid के अंदर प्रत्येक घटक में उपलब्ध है एर>.

<पी> अंतिम चरण किसी घटक में संदर्भ का उपयोग करना है। हम <ExampleCompone का उपयोग करते हैं nt> अभी के लिए:

<पी> अब हमारा घटक कॉन्टेक्स्ट एपीआई और this.context.isConnected का उपयोग करता है हमारे उपयोग के लिए उपलब्ध है।

<पी> अब हम अपने उपयोगकर्ताओं को <ExampleCompone में एक संदेश दिखा सकते हैं nt> जब उपयोगकर्ता का इंटरनेट कनेक्शन ऑनलाइन या ऑफलाइन हो।

<पी> रिएक्ट के पिछले संस्करणों में, context आपके रेंडर विधि के बाहर उपलब्ध नहीं था। रिएक्ट 16.6.0 के बाद से यह static contextType का उपयोग करके उपलब्ध है जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है। इस तरह इसका उपयोग करने से हमें उस संदर्भ में अधिक लचीलापन मिलता है जहां हम अपने घटकों के अंदर उस संदर्भ का उपयोग करना चाहते हैं।

एक अंतिम नोट

<पी> इसलिए, हमने दिखाया है कि कॉन्टेक्स्ट एपीआई इस उपयोग के मामले में इन वैश्विक मूल्यों को स्थापित करने और उपयोग करने के लिए बिल्कुल सही है। कनेक्टिविटी स्थिति हमारे संपूर्ण ऐप पर उपलब्ध होना महत्वपूर्ण है, इसलिए हम अपने उपयोगकर्ताओं को सूचित कर सकते हैं कि जब सक्रिय इंटरनेट कनेक्शन की आवश्यकता वाली कोई कार्रवाई विफल होने वाली है।

<पी> हम Redux के साथ भी ऐसा ही कर सकते हैं, लेकिन इसके लिए अधिक कोड की आवश्यकता है। आइए जहां संभव हो देशी रिएक्ट एपीआई का उपयोग करें, क्योंकि यह निर्भरता को सीमित करता है! <पी> संपूर्ण सार मेरे GitHub पर पाया जा सकता है।

पढ़ने के लिए धन्यवाद!

<पी> मैं पिछले कुछ वर्षों से माध्यम का उपयोग कर रहा हूं, लेकिन आम तौर पर केवल अन्य लोगों की सामग्री को पढ़ रहा था और सीख रहा था। इन वर्षों के दौरान इस तरह के ट्यूटोरियल ने मेरी बहुत मदद की। तो, अपना खुद का लिखना इस अद्भुत डेवलपर समुदाय को वापस लौटाने का मेरा तरीका है!

<पी> क्या इस ट्यूटोरियल से आपको मदद मिली? मुझे टिप्पणियों में बताएं? <पी> मेरे लेखों को बेहतर बनाने के लिए आपके पास प्रतिक्रिया है? मैं अपने ज्ञान को बेहतर बनाने और साझा करने के लिए उत्सुक हूं <पी> मुफ़्त में कोड करना सीखें. फ्रीकोडकैंप के ओपन सोर्स पाठ्यक्रम ने 40,000 से अधिक लोगों को डेवलपर्स के रूप में नौकरी पाने में मदद की है। आरंभ करें


  1. 5 गोपनीयता कारण एक अमेज़न स्मार्टफोन नहीं खरीदने के लिए 5 गोपनीयता कारण एक अमेज़न स्मार्टफोन नहीं खरीदने के लिए

    क्या आप नए स्मार्टफोन पर विचार कर रहे हैं? अगर आप हैं, तो Amazon का फायर फोन आपकी लिस्ट में टॉप पर हो सकता है। लेकिन एक मिनट रुकिए:गोपनीयता के पांच कारण हैं कि यह एक अच्छा विचार क्यों नहीं हो सकता है… इस क्रिसमस पर अमेज़ॅन स्मार्टफोन सर्वव्यापी होने की संभावना है, हर बार जब आप अमेज़ॅन पर उपहार ऑर्ड

  1. फेसबुक पर पोकेमॉन गो के सभी उल्लेखों को कैसे रोकें? फेसबुक पर पोकेमॉन गो के सभी उल्लेखों को कैसे रोकें?

    जब दुनिया में कुछ होता है, तो एक जगह जहां उसकी चर्चा जरूर होती है, वह है फेसबुक का न्यूज फीड। चाहे वह राजनीति हो या पोकेमॉन गो जैसा गेम, आप देखेंगे कि लोग इसके बारे में अपने फेसबुक पेज पर अपनी राय पोस्ट करते हैं, और आप उन पोस्ट को अपने न्यूज फीड में देख सकते हैं। यदि आप उन पोस्ट को पसंद करते हैं तो

  1. बेस्ट पीपल फाइंडर और फोन नंबर लुकअप वेबसाइटों में से 13 बेस्ट पीपल फाइंडर और फोन नंबर लुकअप वेबसाइटों में से 13

    चाहे आपका लक्ष्य किसी पुराने हाई स्कूल मित्र के साथ फिर से जुड़ना हो या नौकरी के लिए संभावित उम्मीदवार की तलाश करना हो, ऑनलाइन लोगों की खोजों के कई तरह के उपयोग होते हैं। किसी का फोन नंबर, घर या ईमेल पता, गिरफ्तारी रिकॉर्ड और परिवार के सदस्यों को ढूंढना कुछ ऐसा है जो आप लोग खोजकर्ता वेबसाइट के माध्य