Back to Question Center
0

प्रतिक्रिया Redux अनुप्रयोग मध्ये Async ऑपरेशन्स            रिएक्शन रेडयुक्स अॅप्लिकेशन्समध्ये एसिंक ऑपरेशन्स रीलीटेड विषयः कच्चा सामल

1 answers:
प्रतिक्रिया Redux अनुप्रयोग मध्ये Async ऑपरेशन्स

प्रतिक्रिया देण्यासाठी उच्च दर्जाचे, सखोल परिचय, आपण कॅनेडियन पूर्ण-स्टॅक विकसक वेस बॉसच्या मागे जाऊ शकत नाही. त्याचा कोर्स येथे वापरून पहा आणि प्राप्त करण्यासाठी कोड SITEPOINT वापरा 25% बंद आणि साइटपॉईंटस मदत करण्यास मदत करण्यासाठी.

हे पोस्ट मूलतः कोडब्रहमा येथे पोस्ट केले होते.

सेमील्ट एक एकल-थ्रेडेड प्रोग्रामिंग भाषा आहे - appraisal companies nationwide. याचा अर्थ असा की जेव्हा आपल्याला कोड असे काहीतरी असेल .

Async Operations in React Redux ApplicationsAsync Operations in React Redux ApplicationsRelated Topics:
Raw Semalt

.पहिल्यांदा पूर्ण होईपर्यंत दुसरी ओळ कार्यान्वित होत नाही. Semaltेट हे एक समस्या नाही, कारण लाखो कॅल्क्युलेशन क्लाएंट किंवा सर्व्हरद्वारे दुसर्यामध्ये केले जातात. आम्ही फक्त तेव्हाच परिणाम लक्षात घेतो जेव्हा आपण महाग गणना करीत असतो (एक कार्य जे पूर्ण होण्यास लक्ष वेधणारा वेळ घेतो - एक नेटवर्क विनंती ज्याने परत येण्यास काही वेळ लागतो).

मी येथे फक्त एक एपीआय कॉल (नेटवर्क विनंती) का दर्शविला? इतर एसिंक ऑपरेशन्स बद्दल काय? एसीआय कॉल म्हणजे एसिंक्रोनस ऑपरेशनसह कशी हाताळायची हे वर्णन करण्यासाठी एक अत्यंत साधे आणि उपयुक्त उदाहरण आहे. इतर ऑपरेशन आहेत, जसे की setTimeout , कार्यप्रदर्शन-भारी गणना, प्रतिमा लोडिंग, आणि कोणत्याही घटना-चालविलेल्या ऑपरेशन.

आपल्या अर्जाची रचना करताना, आपण समजुळू या आकडय़ांमधील अंमलबजावणीमुळे संरचनेवर कसा प्रभाव पडतो हे समजणे आवश्यक आहे. उदाहरणार्थ, ब्राऊझरच्या एपीआय कॉल (नेटवर्क विनंती) करणारी एक फंक्शन म्हणून प्राप्त करा विचारात घ्या. (हे एक AJAX विनंती असेल तर ते विसरून जा. फक्त वर्तणुकीचा अतुल्यकालिक किंवा समकालिक स्वरुपाचा विचार करा.) मुख्य थ्रेडवर सर्व्हरवर विनंती केल्यावर वेळ संपत नाही. तर तुमचा जेएस कोड कार्यान्वित होत राहील, आणि विनंती एकदा प्रतिसाद परत करेल तेव्हा धागा सुधारित होईल.

या कोडचे सममूल्य:

     यूज़रआयड = फॅच (यूजर एन्डपॉईंट); // वापरकर्त्याकडून प्राप्त कराएन्डपॉईंटवरूनuserDetails = fetch (userEndpoint, userId) // या विशिष्ट userId साठी प्राप्त करा.     

या प्रकरणात, प्राप्त असिंक्रोनस आहे, आम्ही येत नाही userId आम्ही प्राप्त करण्याचा प्रयत्न करताना userDetails . तर आपल्याला त्यास अशा प्रकारे संरचित करणे आवश्यक आहे जे सुनिश्चित करते की दुसरी ओळ कार्यान्वित करते तेव्हाच प्रथम प्रतिसाद देतो.

नेटवर्क विनंत्यांची सर्वाधिक आधुनिक अंमलबजावणी अतुल्यकालिक आहेत. परंतु हे नेहमीच मदत करत नाही, कारण आम्ही पुढील API कॉलसाठी मागील API प्रतिसाद डेटावर अवलंबून असतो. चला आपण ते कसे पाहु शकतो ते मीललाट ऍप्लिकेशनसमध्ये पाहू.

मिमलॅट म्हणजे फ्रन्ट-एंड लायब्ररी जो वापरकर्ता इंटरफेससाठी वापरला जातो. रेड्यूक्स एक राज्य कंटेनर आहे जो संपूर्ण ऍप्लिकेशनची संपूर्ण स्थिती व्यवस्थापित करू शकते. रेडयुक्ससह मिश्रित मिष्ट्ठ सह, आम्ही प्रभावी अनुप्रयोग बनवू शकतो जो चांगले मोजतात. अशा माध्यमिक अनुप्रयोगात एसिंक ऑपरेशन्सची रचना करण्यासाठी अनेक मार्ग आहेत. प्रत्येक पद्धतीसाठी, या घटकांच्या संबंधात साधक आणि बाधकांशी चर्चा करूया:

  • कोड स्पष्टता
  • प्रमाणता
  • त्रुटी हाताळणीची सोपी.

प्रत्येक पद्धतीसाठी, आम्ही हे दोन API कॉल करू:

1. प्राप्त करीत आहे शहर पासून वापरकर्ता अहवाल (प्रथम एपीआय प्रतिसाद)

आपण समजावून घ्या की अंतबिंदू आहे / तपशील . त्याच्याकडे प्रतिसादात शहर असेल. प्रतिसाद एक वस्तू असेल:

     userDetails: {.शहर: 'शहर',.};    

2. वापरकर्त्याच्या आधारावर शहर आम्ही शहरात सर्व रेस्टॉरन्ट्स आणू

आता शेवटचा मुद्दा म्हणजे / विश्रामगणित /: शहर . प्रतिसाद एक अॅरे असेल:

     ['restaurant1', 'restaurant2', . ]    

लक्षात ठेवा की जेव्हा आपण प्रथम कार्य पूर्ण करता तेव्हाच आम्ही दुसरी विनंती करू शकतो (कारण ही पहिल्या विनंतीवर अवलंबून आहे).

विशेषतः मी उपरोक्त पद्धती निवडल्या कारण ते मोठ्या प्रमाणावरील प्रकल्पासाठी सर्वात लोकप्रिय आहेत. अन्य पद्धती अजूनही विशिष्ट कार्यांकरिता विशिष्ट असू शकतात आणि त्यामध्ये जटिल अॅप्टीसाठी आवश्यक असलेली सर्व वैशिष्ट्ये नाहीत ( redux-async, redux-promise, redux-async-queue नावासाठी काही).

वचने

एक अभिवचन म्हणजे अशी एखादी वस्तू जी भविष्यकाळात काही काळ एकाच वेळी निर्माण करू शकते: एकतर एक निराकरण मूल्य, किंवा याचे निराकरण झाले नाही असे कारण (उदा., नेटवर्क त्रुटी आली). - एरिक इलियट

आमच्या बाबतीत, आम्ही डेटा आणण्यासाठी axios लायब्ररी वापरू, जे आम्ही एक नेटवर्क विनंती करा तेव्हा एक वचन परत. हे वचन निराकरण करू शकते किंवा प्रतिसाद परत करू शकते किंवा त्रुटी टाकू शकते म्हणून, एकदा प्रतिक्रिया घटक माउंट्स, आम्ही लगेच यासारख्या प्राप्त करू शकतो:

     घटकडिडमाउंट    {अक्विओस मिळवा ('/ तपशील') // वापरकर्ता तपशील मिळवा. नंतर (प्रतिसाद = & gt; {const userCity = प्रतिसाद शहरअक्विओस मिळवा (`/ रेस्टॉरंट / $ {userCity}`). नंतर (रेस्टॉरंटResponse = & gt; {हे. setState ({सूचीऑफ सेवा: रेस्टॉरंट रेस्पॉन्स, // राज्य सेट करते})})})}    

अशाप्रकारे जेव्हा राज्य बदलते (लायन करण्यामुळे), घटक आपोआप रेस्टॉरंट्सची यादी पुन्हा भरून लोड करेल.

असिंक / प्रतीक्षा एक नवीन कार्यान्वयन आहे ज्यायोगे आम्ही एसिंक ऑपरेशन करू शकतो. उदाहरणार्थ, त्याच गोष्टी साध्य करता येतात:

     async componentDidMount    {कॉन्स्ट रेस्टॉरंटरस्पोंस = आक्षेप मिळवा ('/ तपशील') // वापरकर्ता तपशील मिळवा. नंतर (प्रतिसाद = & gt; {const userCity = प्रतिसाद शहरअक्विओस मिळवा (`/ रेस्टॉरंट / $ {userCity}`). नंतर (रेस्टॉरंटResponse = & gt; रेस्टॉरंटरेस्पॉन्स});हे. setState ({रेस्टॉरंट रेस्पॉन्स,});}    

या दोन्ही गोष्टी सर्व पद्धतींमधील सोपा आहेत. संपूर्ण तर्क अंश घटकाच्या आत आहे, आम्ही घटक भार एकदाच सर्व डेटा प्राप्त करू शकतो.

पद्धतत

कमतरता

समस्या जेव्हा डेटावर आधारित जटिल परस्परक्रिया करत असेल. उदाहरणार्थ, पुढील प्रकरणांचा विचार करा:

Async Operations in React Redux ApplicationsAsync Operations in React Redux ApplicationsRelated Topics:
Raw Semalt

    (5 9) आम्ही नेटवर्क विनंतीसाठी अवरूद्ध होण्याकरिता जे एसएस कार्यान्वित केले जात आहे त्या थ्रेडची नको. (5 9) उपरोक्त सर्व प्रकरणांमध्ये कोड अतिशय गुंतागुंतीचा आणि देखरेख व चाचणी करणे कठीण होईल. (5 9) तसेच, स्केलेबिलिटी हा एक महत्त्वाचा मुद्दा असेल कारण आपण अॅप्लिकेशन्सचा प्रवाह बदलण्याची योजना बनवली आहे, तर घटकांमधून सर्व फेचेस काढणे आवश्यक आहे.
  • घटक पालक मुलांच्या ट्री शीर्षस्थानी आहे तर कल्पना करा. मग आपल्याला सर्व डेटावर आधारित प्रस्तुतिकरण घटक बदलण्याची गरज आहे.
  • (5 9) हे देखील लक्षात घ्या की, संपूर्ण व्यवसाय तर्क घटकांच्या आत आहे.

आपण येथून कसे सुधारू शकतो?

1. राज्य व्यवस्थापन
या प्रकरणांमध्ये, जागतिक स्टोअरचा उपयोग केल्याने आपल्या अर्धा समस्या सोडविल्या जातील. आम्ही Redux आमच्या जागतिक स्टोअर म्हणून वापरणार आहोत.

2. व्यावसायिक तर्कशास्त्र योग्य ठिकाणी हलवण्याकरिता
जर आपण आपला व्यवसाय कॉन्टोनॅक्टच्या बाहेर काढण्याचा विचार केला तर मग आम्ही नक्की काय करू शकतो? कृती मध्ये? रेड्यूकर्समध्ये? मिडलवेयर मार्गे? रेड्यूक्सचे आर्किटेक्चर हे निसर्गात समकालिक आहे. आपण एखादी कृती (जेएस ऑब्जेक्ट्स) प्रेषित करतो आणि तो स्टोअरमध्ये पोहोचतो, त्यावरील रीडायझर कार्य करतो

3. मीठलेटमध्ये एक वेगळा धागा आहे जिथे async कोड अंमलात येतो आणि ग्लोबल स्टेटमध्ये कोणताही बदल सबस्क्रिप्शन

Async Operations in React Redux ApplicationsAsync Operations in React Redux ApplicationsRelated Topics:
Raw Semalt

यावरून, आपण एक कल्पना मिळवू शकता की जर आम्ही सर्वप्रकारे फेरबदल तर्कशास्त्र काढण्यापूर्वी - क्रिया करणारा किंवा मध्यवर्ती आहे - मग योग्य वेळी योग्य कृती प्रेषित करणे शक्य आहे.
उदाहरणार्थ, आम्ही प्राप्त करू शकतो ({प्रकार: 'FETCH_SUCCESS'}) उदाहरणार्थ,. हे मुळात आम्हाला परत कार्य ऐवजी ऑब्जेक्ट ऐवजी परत करण्याची परवानगी देते. या कार्यासाठी वितर्क म्हणून प्रेषण आणि गेटस्टेट प्रदान केल्याने मदत होते योग्य वेळी योग्य क्रिया पाठवून आम्ही ही पद्धत प्रभावीपणे वापरतो. फायदे:

  • फंक्शनच्या आत एकाधिक डिस्पॅच्सची परवानगी देणे
  • (5 9) आनुषांगाना व्यवसाय तर्कशास्त्र संबंधित रिचार्ज घटक बाहेर असेल आणि कृती करण्यासाठी स्थानांतरित होईल.

आपल्या बाबतीत, आम्ही यासारखी कृती पुन्हा लिहू शकतो:

     निर्यात कॉन्स्ट मिल रिस्टर्व्हिन =    = & gt; {रिटर्न (प्रेषण) = & gt; {प्रेषण (fetchStarted   ); // fetchStarted    एक क्रिया परत करतेप्राप्त करा ('/ तपशील') नंतर ((प्रतिसाद) = & gt; {प्रेषण (fetchUserDetailsSuccess   ); // fetchUserDetailsSuccess क्रिया परत करतेपरत प्रतिसाद;}). नंतर (तपशील = & gt; तपशील शहर). नंतर (शहर = & gt; आणा ('/ restaurants / city')) नंतर ((प्रतिसाद) = & gt; {प्रेषण (fetchRestaurantsSuccess (प्रतिसाद)) // आनुषंगिक कराशोध सेवा (प्रतिसाद) डेटासह क्रिया परत करते}). झेल (   = & gt; पाठवा (fetchError   )); // fetchError    त्रुटी ऑब्जेक्टसह क्रिया परत करते};}    

जसे आपण पाहू शकता, आता आपल्यावर चांगले नियंत्रण आहे प्रेषण कोणत्या प्रकारची कारवाई प्रत्येक फंक्शन कॉल सारख्या fetchStarted , fetchUserDetailsSuccess , fetchRestaurantsSuccess आणि fetchError एक साधा जावास्क्रिप्ट ऑब्जेक्ट प्रकार आणि आवश्यक असल्यास अतिरिक्त तपशील तर आता प्रत्येक कृती हाताळण्यासाठी आणि दृश्य अद्ययावत करण्यासाठी रीड्यूल्डर्सचे काम आहे. मी रीड्यूसरवर चर्चा केलेली नाही, कारण ती येथून सरळ आहे आणि अंमलबजावणी वेगळी असू शकते.

हे कार्य करण्यासाठी, Redux सह प्रतिक्रिया घटक जोडणे आणि Redux लायब्ररीच्या सहाय्याने घटकांसह क्रिया करणे आवश्यक आहे. एकदा हे पूर्ण झाल्यानंतर, आम्ही फक्त हे कॉल करू शकतो. प्रॉप्स getRestaurants , जे वरील सर्व कामे हाताळेल आणि रीड्यूसरवर आधारित दृष्य अद्यतनित करेल.

त्याच्या स्केलिबिलिटीच्या संदर्भात, रेड्यूज मिमलचा अॅप्समध्ये वापरला जाऊ शकतो ज्यात एसिन्क क्रियांवर जटिल नियंत्रणे समाविष्ट नाहीत. तसेच, पुढील ग्रंथाच्या विषयांबद्दल चर्चा केल्याप्रमाणे, ते इतर लायब्ररीशी अखंडपणे काम करते.

पण तरीही, रेड्यूज सेमील्ट वापरून काही कामे करणे फारच अवघड आहे. उदाहरणार्थ, आम्हाला असे कॉल करणे दरम्यान कॉल करणे किंवा अशा अनेक कॉल्स असल्यास, आणि केवळ नवीनसाठी परवानगी देणे आवश्यक आहे, किंवा जर काही अन्य API हा डेटा प्राप्त करते आणि आम्हाला रद्द करणे आवश्यक आहे

आम्ही अद्याप त्या अंमलबजावणी करू शकतो, परंतु हे नक्कीच करण्यासारखे थोडे अवघड असेल. इतर लायब्ररीच्या तुलनेत जटिल कार्येसाठी कोड स्पष्टता फारच खराब असेल आणि ती राखणे कठीण होईल.

रेडक्स-सागा वापरणे

मिल्ल्यालवेअरचा वापर करून, आपल्याला अधिक लाभ मिळू शकतात जे उपरोक्त दिलेल्या अनेक कार्यात्मकता सोडवतात. तेलाचा ES6 जनरेटरच्या आधारावर विकसित केला गेला.

Semaltॅट एक एपीआय प्रदान करते ज्यामुळे खालील प्राप्त करण्यास मदत होते:

    (5 9) काही गोष्टी संपल्यापर्यंत एकाच ओळीत धागा अवरोधित करणार्या घटनांना अवरोधित करणे (5 9) नॉन-ब्लॉकिंग इव्हेंट्स जे कोड एसिंक बनवतात.
  • एकाधिक असिंक विनंत्या
  • दरम्यान रेसिंग हाताळणी(5 9) पॉझिंग / थ्रॉटलिंग / डेब्युसिंग करणे.
(24 9) साग कसे काम करतात?

एग्जिन ऑपरेशन्स सुलभ करण्यासाठी सागास हे ES6 जनरेटर्स आणि एसिंक प्रतीक्षा करणाऱ्यांचे संयोजन वापरतात. हे मुळात वेगळ्या थ्रेडवर त्याचे कार्य करते जेथे आपण एकाधिक API कॉल करू शकतो. वापर केसवर अवलंबून प्रत्येक कॉल समकालिक किंवा असिंक्रोनस करण्यासाठी आम्ही त्यांचा API वापरू शकतो. एपीआय कार्यक्षमता पुरवते ज्याद्वारे आम्ही थ्रेडला त्याच ओळीत प्रतीक्षा करेपर्यंत विनंती प्रतिसाद देत नाही तोपर्यंत. यापासून मिहान, या लायब्ररीद्वारे पुरविलेल्या इतर पुष्कळ API आहेत, ज्यामुळे एपीआय विनंत्या हाताळणं फारच सोपे आहे. शहर));// यशस्वीरित्या रेस्टॉरंट्स पाठवणेउत्पन्न उत्पन्न ({प्रकार: 'FETCH_RESTAURANTS_SUCCESS',पेलोडः {उपहारगृहे},});} catch (e) {// त्रुटी वर त्रुटी संदेश प्रेषितउत्पन्न उत्पन्न ({प्रकार: 'FETCH_RESTAURANTS_ERROR',पेलोडः {त्रुटी संदेश: ई,}});}}निर्यात डीफॉल्ट फंक्शन * fetchRestaurantSagaMonitor {टेक प्रत्येक प्राप्त करा ('FETCH_RESTAURANTS', प्रारंभ करा); // अशी प्रत्येक विनंती घेतो}

म्हणून जर आम्ही FETCH_RESTAURANTS प्रकारासह सोपा क्रिया पाठविली तर सागा मिडलवेअर ऐकेल आणि प्रतिसाद देईल. वास्तविक, कोणतीही कृती मध्यमवर्गाद्वारे सेवन केली जात नाही हे फक्त काही अतिरिक्त कार्ये ऐकते आणि करते आणि नवीन क्रिया पाठवून आवश्यक असल्यास पाठवले जाते. या आर्किटेक्चरचा वापर करून, आम्ही वर्णन केलेल्या प्रत्येक विनंत्या पाठवू शकतो

  • पहिली विनंती सुरू झाली तेव्हा
  • (5 9) जेव्हा प्रथम विनंती पूर्ण झाली (5 9) जेव्हा दुसरा विनंती सुरू झाली

.आणि याप्रमाणे.

तसेच, आपण सौंदर्य पाहू शकता fetchRestaurantsSaga . आम्ही सध्या कॉल अवरोधित करणे अंमलात आणण्यासाठी कॉल API चा वापर केला आहे. Sagas इतर API प्रदान करते, जसे fork , जे अ-अवरोधन कॉल कार्यान्वित करते. आम्ही आमच्या कार्यास जुळणारी संरचना कायम राखण्यासाठी दोन्ही ब्लॉकिंग आणि अवरोध कॉल एकत्र करू शकतो.

स्केलेबिलिटीच्या दृष्टीने, सागांचा उपयोग करणे फायदेशीर आहे:

    (5 9) आपण कोणत्याही विशिष्ट कार्यांवर आधारित गट तयार करू शकता आणि समूह करू शकता. एखाद्या कारवाईचा पाठपुरावा करून आम्ही एक गाथा दुस-या टप्प्यात आणू शकतो. (5 9) हे मध्यमवर्गीय असल्याने, आम्ही लिहिलेल्या क्रिया सामान्य जनसमुदाय वस्तू असतील, थक्यांसारखे नाहीत. (5 9) आपण गावात व्यवसाय तर्कशास्त्र हलवत असल्याने (म्हणजे मिडलवेअर आहे), जर आपल्याला माहित असेल की गाथाची कार्यक्षमता काय असेल, तर त्याचा अर्थ समजून घेणे सोपे होईल. (5 9) एरर्स सहजपणे परीक्षण करून आणि स्टोअरमध्ये टच / कॅच पॅटर्नद्वारे पाठवल्या जाऊ शकतात.
(2 9 1) रेड्यूक्स-ऑबॅब्लेस वापरणे

"एक महाकाव्य म्हणजे रेडयुक्स-निरीक्षणयोग्य मूळ आद्य" असे त्यांच्या दस्तऐवजात नमूद केल्याप्रमाणे:

(2 9 5)
  • एपिक हा एक असे कार्य आहे जो क्रियांचा प्रवाह घेतो आणि कृतींचा प्रवाह परत करतो म्हणजेच एपिक सामान्य Semalt डिस्पॅच चॅनेलच्या बरोबर चालत असतो, रेड्यूर्स आधीपासूनच त्यांना प्राप्त झाल्यानंतर.

  • महाकाव्य देखील त्यांना प्राप्त करण्यापूर्वी Semalt नेहमी आपल्या reducers माध्यमातून चालवा. एखादा महाकाव्य फक्त कृतीचा दुसर्या प्रवाह प्राप्त करतो आणि आउटपुट देतो. हे रेडक्स-सागा सारखं आहे, त्यामधे मिल्ल्यायरने सेवन केले नाही. हे फक्त काही अतिरिक्त कार्ये ऐकते आणि करते

  • आपल्या कामासाठी आपण हे केवळ लिहू शकतो:

         कॉन्स्ट फेचेउझरडाउनलोड = ऍक्शन $ = & gt; ($ क्रिया ofType ('FETCH_RESTAURANTS'). स्विचमॅप (   = & gt;अजाक्स getJSON ('/ तपशील') नकाशा (प्रतिसाद = & gt; प्रतिसाद वापरकर्ता. तपशील. शहर). स्विचमॅप (   = & gt;अजाक्स getJSON (`/ रेस्टॉरन्ट / सिटी /`) नकाशा (प्रतिसाद = & gt; ({प्रकार: 'FETCH_RESTAURANTS_SUCCESS', पेलोडः प्रतिसाद प्रतिसाद रेस्टॉरंट्स})) // यशस्वी झाल्यानंतर प्रेषणे). झेल (त्रुटी = & gt; निरीक्षक. ({प्रकार: 'FETCH_USER_DETAILS_FAILURE', त्रुटी})))))    

    प्रथम, हे थोडे गोंधळात टाकणारे दिसू शकते परंतु आपल्याला जितके अधिक RxJS समजतील, तितके ते एक महाकाव्य तयार करणे सोपे आहे.

    साग्यांसारख्या गोष्टींप्रमाणे, एपीआय विनंती शृंखलाच्या कोणत्या भागात धागा सध्या आहे याबद्दल आम्ही वर्णन केलेल्या प्रत्येक कृतीवर पाठवू शकतो.

    स्केलेबिलिटीच्या दृष्टीने, आम्ही विशिष्ट कार्यांसाठी आधारित महाकाव्य किंवा महाकाव्य रचना करू शकतो. म्हणूनच हे लायब्ररी स्केलेबल ऍप्लिकेशन्स तयार करण्यास मदत करू शकते. लिखित कोडचा मिमल पॅटर्न समजल्यास कोडची स्पष्टता चांगले आहे.

    माझे प्राधान्ये

    आपण कोणती लायब्ररी वापरणार हे निश्चित कसे करू शकता?
    हे आमच्या API विनंत्या कसे जटिल आहे यावर आधारित आहे. दोन्ही वेगवेगळ्या संकल्पना आहेत परंतु तितकेच तितक्याच चांगल्या आहेत. मी आपल्याला कोणते सर्वोत्कृष्ट दाखवायचे हे पाहण्यासाठी दोन्ही प्रयत्न करण्याचा सल्ला देते.

    आपण आपले व्यवसाय लॉजिक एपीआयशी व्यवहार कोठे करीत आहात?
    शक्यतो reducer करण्यापूर्वी, पण घटक मध्ये नाही. सर्वोत्तम मार्ग मिडलवेअरमध्ये असेल (सागा किंवा निरीक्षण करून)

    आपण कोडब्रह्मा येथे अधिक विकास लेख वाचू शकता.

    प्रसन्ना महांदीरन हा Codebrema मध्ये सॉफ्टवेअर डेव्हलपर आहे. कॉम
    Async Operations in React Redux ApplicationsAsync Operations in React Redux ApplicationsRelated Topics:
Raw Semalt
    (35 9)
    नवशिक्या
    शिकण्याचा सर्वोत्तम मार्ग
    वेस बॉस
    आपल्याला रिअल-वर्ल्ड बनविण्यासाठी एक चरण-दर-चरण प्रशिक्षण कोर्स करा. दुहेरी दुपारी जेएस + फायरबसे अॅप्स आणि वेबसाइट घटक. प्राप्त करण्यासाठी चेकआउटवर कूपन कोड 'SITEPOINT' वापरा 25% बंद .

    March 1, 2018