Back to Question Center
0

जल्दी से प्रतिक्रिया दें: प्रपत्र में प्रतिक्रिया के साथ काम कैसे करें जल्दी से प्रतिक्रिया दें: प्रतिक्रिया में प्रपत्रों के साथ कैसे काम करें संबंधित विषय: jQuery उपकरण और & Semalt

1 answers:
जल्दी से प्रतिक्रिया दें: प्रतिक्रिया में फ़ॉर्म के साथ कैसे काम करें

प्रपत्र में प्रतिक्रिया के साथ काम कैसे करें तेजी से प्रतिक्रिया से एक उद्धरण है, आज़ाट मार्डन द्वारा बुक किए गए किसी भी व्यक्ति के लिए, जो कि मिस्टर फास्ट सीखना चाहता है

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

इस आलेख के उदाहरणों के लिए स्रोत कोड ch07 फ़ोल्डर में है GitHub रिपॉजिटरी azat-co / react-quickly कुछ डेमो http: // पर मिल सकता है। सह / क़ौम।

यदि आप इस पोस्ट का आनंद लेते हैं, तो आप शायद Redux के साथ हमारे पाठ्यक्रम बिल्ड रिएक्ट फ़ॉर्म देखना चाहें।

रिएक्ट में फॉर्म के साथ काम करने का अनुशंसित रास्ता

नियमित एचटीएमएल में, जब हम एक इनपुट तत्व के साथ काम करते हैं, तो पृष्ठ का DOM उसके डीओएम नोड में उस तत्व का मान रखता है। (1 9) दस्तावेज़ों के माध्यम से मूल्य का उपयोग करना संभव है। getElementById ( 'ई-मेल')। मूल्य , या jQuery विधियों का उपयोग करके। डीओएम हमारे भंडारण है

प्रतिक्रिया में, फ़ॉर्म या किसी भी अन्य उपयोगकर्ता इनपुट फ़ील्ड के साथ काम करते समय, जैसे स्वसंपूर्ण पाठ फ़ील्ड या बटन, डेवलपर्स को हल करने के लिए एक दिलचस्प समस्या है। सेमाल्ट दस्तावेज़ से:

सेमट घटक समय के किसी भी बिंदु पर दृश्य की स्थिति का प्रतिनिधित्व करना चाहिए और केवल प्रारंभिक समय पर नहीं।

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

क्या आप एक संघर्ष को देख सकते हैं? पारंपरिक एचटीएमएल फॉर्म तत्वों में, उपयोगकर्ता इनपुट के साथ तत्वों की स्थिति बदल जाएगी। यूआई का वर्णन करने के लिए Semaltट्रेट एक घोषणात्मक दृष्टिकोण का उपयोग करता है। राज्य को उचित रूप से प्रतिबिंबित करने के लिए इनपुट को डायनेमिक होना चाहिए।

अगर डेवलपर्स को ऑप्टिमाइज़ेशन राज्य (जावास्क्रिप्ट) में बनाए रखने के लिए ऑप्ट नहीं , या इसे देखने के साथ सिंक करने के लिए नहीं, तो यह समस्याएं जोड़ता है: एक ऐसी स्थिति हो सकती है जब आंतरिक स्थिति और दृश्य अलग-अलग होते हैं प्रतिक्रिया स्थिति के बारे में पता नहीं होगा इससे सभी प्रकार की परेशानी हो सकती है, और प्रतिक्रिया के सरल दर्शन को कम कर सकता है। सबसे अच्छा अभ्यास है रिएक्ट्स रेंडर यथासंभव असली डोम के करीब रखना है, और इसमें फ़ॉर्म तत्वों में डेटा शामिल है।

एक पाठ इनपुट फ़ील्ड के इस उदाहरण पर विचार करें। प्रतिक्रिया उस घटक के लिए अपने रेंडर में नया मान शामिल होना चाहिए। नतीजतन, हमें मान का उपयोग करते हुए हमारे मूल्य के लिए मूल्य को नया मान सेट करना होगा। अगर हम (1 9) फ़ील्ड को लागू करते हैं, जैसा कि हमने हमेशा एचटीएमएल में किया है, तो रिएक्ट रेंडर को वास्तविक डोम के साथ सिंक्रनाइज़ करेगा। प्रतिक्रिया उपयोगकर्ताओं को मूल्य बदलने की अनुमति नहीं देगा। यह अपने आप का प्रयास करें। यह मुझे पागल ड्राइव, लेकिन यह प्रतिक्रिया के लिए उचित व्यवहार है!

     रेंडर    {वापसी   }    

उपर्युक्त कोड किसी भी राज्य में दृश्य को दर्शाता है, और मूल्य हमेशा "मिस्टर "। इनपुट फ़ील्ड के साथ, उन्हें उपयोगकर्ता कुंजीस्ट्रोक के जवाब में बदलना होगा। इन बिंदुओं को समझें, चलो मूल्य गतिशील बनाते हैं।

यह एक बेहतर कार्यान्वयन है, क्योंकि यह राज्य से अपडेट हो जाएगा:

     रेंडर    {वापसी   }    

राज्य का मूल्य क्या है? अभिकर्मक फॉर्म तत्वों में टाइप करने वाले उपयोगकर्ताओं के बारे में नहीं पता है। डेवलपर्स को चेंज पर के साथ परिवर्तन पर कब्जा करने के लिए एक ईवेंट हैंडलर लागू करने की आवश्यकता है।

     संभाल (घटना) {इस। setState ({शीर्षक: इवेंट। लक्ष्य। मान})}प्रस्तुत करना   {वापसी    

यह पहली नज़र में बहुत काम की तरह लग सकता है, लेकिन मुझे उम्मीद है कि प्रतिक्रिया के उपयोग से अधिक, आप इस दृष्टिकोण की सराहना करेंगे इसे एक एक-तरफा बंधन कहा जाता है, क्योंकि राज्य केवल विचारों को बदलता है यहां कोई यात्रा नहीं है, केवल राज्य के एक-एक तरफ़ा यात्रा देखने के लिए। एक-तरफा बाध्यकारी के साथ, कोई लाइब्रेरी स्वतः ही राज्य (या मॉडल) को अपडेट नहीं करेगा एक तरफा बाध्यकारी के मुख्य लाभों में से एक यह है कि बड़े ऐप के साथ काम करते समय यह जटिलता को निकालता है जहां कई दृश्य कई राज्यों (डेटा मॉडल) और इसके विपरीत-चित्र 2.

सरल हमेशा कम कोड का मतलब नहीं है इस मामले की तरह सैमलेट, डेवलपर्स को इवेंट हैंडलर से डेटा को राज्य को मैन्युअल रूप से सेट करने के लिए अतिरिक्त कोड लिखना चाहिए (जो देखने के लिए प्रदान किया गया है), लेकिन यह दृष्टिकोण जटिल उपयोगकर्ता इंटरफेस और सिंगल-पेज एप्लिकेशन विचारों और राज्यों के असंख्य के साथ इसे संक्षेप में डालने के लिए: सरल हमेशा आसान नहीं होता है

जल्दी से प्रतिक्रिया दें: प्रपत्र में प्रतिक्रिया के साथ काम कैसे करेंजल्दी से प्रतिक्रिया दें: प्रतिक्रिया में प्रपत्र के साथ काम कैसे करें संबंधित विषय:
jQuery के टूल और सैमलेट

इसके विपरीत, दो तरफा बाध्यकारी विचारों को डेवलपर्स के बिना स्वचालित रूप से राज्यों को बदलने के लिए अनुमति देता है, जो इसे स्पष्ट रूप से कार्यान्वित करते हैं। दो-तरफा बाध्यकारी यह है कि कैसे काँजर 1 काम करता है दिलचस्प बात यह है कि, कांगार 2 ने मिमल से बंधन के एक तरफ़ा की अवधारणा को उधार लिया और इसे डिफ़ॉल्ट बनाया (आप अभी भी दो तरह से बाध्यकारी हो सकते हैं)

अनुशंसित पाठ्यक्रम

इस कारण से, हम पहले फ़ॉर्म के साथ काम करने की अनुशंसित दृष्टिकोण को कवर करेंगे समतल को नियंत्रित घटकों कहा जाता है और यह सुनिश्चित करता है कि आंतरिक घटक राज्य हमेशा दृश्य के साथ सिंक में रहता है। वैकल्पिक दृष्टिकोण अनियंत्रित घटक है

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

प्रपत्र को परिभाषित करना और प्रतिक्रिया में इसकी घटनाएं

हम

तत्व से शुरू करेंगे आमतौर पर, हम अपने इनपुट तत्वों को DOM में बेतरतीब ढंग से फांसी नहीं करना चाहते। यह बदले खराब हो सकता है अगर हमारे पास कई कार्यात्मक रूप से अलग-अलग इनपुट होते हैं इसके बजाय, हम इनपुट तत्वों को लपेटते हैं जो (1 9) तत्व में एक सामान्य उद्देश्य साझा करते हैं

एक होने आवरण आवश्यक नहीं है। सामान्य उपयोगकर्ता इंटरफेस में फ़ॉर्म तत्वों का उपयोग करने के लिए यह पूरी तरह ठीक है अधिक जटिल UIs में, डेवलपर्स के पास एक पृष्ठ पर तत्वों के एकाधिक समूह हो सकते हैं। इस मामले में, प्रत्येक समूह के लिए का उपयोग करना बुद्धिमान है प्रतिक्रिया (1 9) एक HTML पर प्रदान की गई है, और जो कुछ भी नियम हमने रिएक्ट (1 9) तत्व पर भी लागू किया है एचटीएमएल 5 युक्ति के मुताबिक, डेवलपर्स को घोंसला नहीं करना चाहिए (यह कहता है कि सामग्री प्रवाह सामग्री है, लेकिन नहीं (1 9) तत्व वंश के साथ)।

फॉर्म तत्व में ही घटनाएं हो सकती हैं। साम्मल मानक Semalt डीओएम घटनाओं के अतिरिक्त रूपों के लिए तीन घटनाओं का समर्थन करता है:

  • ऑन चेंज : किसी भी रूप के इनपुट तत्वों में परिवर्तन होने पर आग लग जाती है
  • (1 9) पर इनपुट : - services in computer network
March 1, 2018