React.js जेएसएक्स को घटकों और तत्वों के एक पेड़ के निर्माण के लिए एक एक्सएचटीएमएल-जैसे सिंटैक्स के रूप में प्रदान करता है। JSX जावास्क्रिप्ट को संकलित करता है, और JSX में लूप या कंडीशंस प्रदान करने के बजाय, आप सीधे जावास्क्रिप्ट का उपयोग करते हैं:
<ul>
{list.map((item) =>
<li>{item}</li>
)}
</ul>
जो मैं अभी तक स्पष्ट नहीं कर पाया हूं, वह अच्छा क्यों माना जाता है यदि अनुरूप निर्माणों को जेएसपी में बुरा माना जाता है?
जेएसपी में कुछ इस तरह
<ul>
<% for (item in list) { %>
<li>${item}</li>
<% } %>
</ul>
टैग के साथ हल करने के लिए एक पठनीयता समस्या माना जाता है <c:forEach>
। JSTL टैग के पीछे तर्क यह भी लगता है कि वे JSX पर लागू हो सकते हैं:
- जब आप XHTML जैसे सिंटैक्स (एंगल ब्रैकेट, नेस्टिंग) और जावा / जावास्क्रिप्ट (कर्ल, कॉमा, परेंस) के बीच टॉगल नहीं कर रहे हों तो यह पढ़ना थोड़ा आसान है
- जब आपके पास रेंडरिंग फंक्शन के अंदर उपयोग के लिए पूरी भाषा और प्लेटफ़ॉर्म उपलब्ध है, तो आपको तर्क देने से कम नहीं है कि इसमें कोई तर्क नहीं है।
केवल यही कारण है कि मैं सोच सकता हूं कि JSX अलग क्यों है:
जावा में, आपके पास गलत काम करने के लिए एक प्रोत्साहन था - जेएसपी गर्म-पुनः लोड किया जाएगा, इसलिए एक पुनर्निर्माण / पुनरारंभ चक्र से बचने के लिए जेएसपी में कोड डालना आकर्षक था। तत्काल उत्पादकता के लिए स्थिरता का त्याग किया गया था। टेम्प्लेट निर्माणों के एक निश्चित समूह तक लिपिबद्धता को गायब करना प्रभावी रूप से स्थिरता बनाए रखने का एक तरीका था। जेएस दुनिया में ऐसी कोई विकृति मौजूद नहीं है।
जेएसपी और जावा सिंटैक्स
<% ... %>
तत्व पीढ़ी से जावा कोड को अलग करने के लिए अतिरिक्त है, और जावा के मूल सिंटैक्स में एकforeach
अवधारणा या प्रथम श्रेणी के कार्यों (हाल ही तक) की कमी है । JSX में लूप और सशर्त के लिए देशी जावास्क्रिप्ट का उपयोग करने का वाक्यविन्यास दंड गैर-शून्य है (मेरी राय में) लेकिन JSP जितना बुरा नहीं है, और यकीनन लूप और सशर्त के लिए JSX- विशिष्ट तत्वों को प्रस्तुत करने के लिए वारंट के लिए बुरा नहीं है।
क्या मुझे कुछ और याद आ रहा है?