AngularJS
एंगुलरजेएस एकल-पृष्ठ अनुप्रयोगों को विकसित करने के लिए एक बंद किया गया मुफ्त और मुक्त-स्रोत जावास्क्रिप्ट-आधारित वेब ढांचा है। इसका रखरखाव मुख्य रूप से गूगल और व्यक्तियों और निगमों के एक समुदाय द्वारा किया जाता था। इसका उद्देश्य वेब अनुप्रयोगों और प्रगतिशील वेब अनुप्रयोगों में आमतौर पर उपयोग किए जाने वाले घटकों के साथ-साथ क्लाइंट-साइड मॉडल-व्यू-कंट्रोलर (एमवीसी) और मॉडल-व्यू-व्यू मॉडल (एमवीवीएम) वास्तुकला के लिए एक रूपरेखा प्रदान करके ऐसे अनुप्रयोगों के विकास और परीक्षण दोनों को सरल बनाना था। एंगुलरजेएस का उपयोग मीन स्टैक के फ्रंटएंड के रूप में किया गया था, जिसमें मोंगोडीबी डेटाबेस, Express.js वेब एप्लिकेशन सर्वर फ्रेमवर्क, एंगुलरजेएस स्वयं (या एंगुलर), और Node.js सर्वर रनटाइम वातावरण शामिल थे। 1 जनवरी, 2022 से, गूगल अब सुरक्षा, ब्राउज़र संगतता, या जेक्वेरी समस्याओं को ठीक करने के लिए एंगुलरजेएस को अपडेट नहीं करता है। कोणीय दल आगे बढ़ने के सर्वोत्तम मार्ग के रूप में कोणीय (v2 +) में उन्नयन की सिफारिश करता है, लेकिन उन्होंने कुछ अन्य विकल्प भी प्रदान किए हैं। अवलोकन एंगुलरजेएस ढांचे ने पहले हाइपरटेक्स्ट मार्कअप लैंग्वेज (एच. टी. एम. एल.) पृष्ठ को पढ़कर काम किया, जिसमें अतिरिक्त कस्टम एच. टी. एम. एल. विशेषताएँ अंतर्निहित थीं। कोणीय ने उन विशेषताओं की व्याख्या पृष्ठ के इनपुट या आउटपुट भागों को एक मॉडल से बांधने के निर्देश के रूप में की जिसे मानक जावास्क्रिप्ट चर द्वारा दर्शाया जाता है। उन जावास्क्रिप्ट चरों के मूल्यों को कोड के भीतर मैन्युअल रूप से सेट किया जा सकता है या स्थिर या गतिशील जे. एस. ओ. एन. संसाधनों से पुनर्प्राप्त किया जा सकता है। एंगुलरजेएस का निर्माण इस विश्वास पर किया गया था कि घोषणात्मक प्रोग्रामिंग का उपयोग उपयोगकर्ता इंटरफेस बनाने और सॉफ्टवेयर घटकों को जोड़ने के लिए किया जाना चाहिए, जबकि अनिवार्य प्रोग्रामिंग एक अनुप्रयोग के व्यावसायिक तर्क को परिभाषित करने के लिए बेहतर थी। फ्रेमवर्क ने दो-तरफा डेटा-बाइंडिंग के माध्यम से गतिशील सामग्री प्रस्तुत करने के लिए पारंपरिक एच. टी. एम. एल. को अनुकूलित और विस्तारित किया जो मॉडल और दृश्यों के स्वचालित सिंक्रनाइज़ेशन की अनुमति देता है। नतीजतन, एंगुलरजेएस ने परीक्षण क्षमता और प्रदर्शन में सुधार के लक्ष्य के साथ स्पष्ट दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) हेरफेर पर जोर दिया। एंगुलरजेएस के डिजाइन लक्ष्यों में शामिल हैंः अनुप्रयोग तर्क से डीओएम हेरफेर को अलग करना। कोड की संरचना के तरीके से इसकी कठिनाई नाटकीय रूप से प्रभावित होती है। सर्वर-साइड से एप्लिकेशन के क्लाइंट साइड को अलग करने के लिए। यह विकास कार्य को समानांतर रूप से आगे बढ़ाने की अनुमति देता है और दोनों पक्षों के पुनः उपयोग की अनुमति देता है। एक अनुप्रयोग के निर्माण की यात्रा के लिए संरचना प्रदान करनाः यू. आई. को डिजाइन करने से, व्यावसायिक तर्क लिखने के माध्यम से, परीक्षण तक। एंगुलरजेएस ने प्रस्तुति, डेटा और तर्क घटकों को अलग करने के लिए एमवीसी पैटर्न को लागू किया। निर्भरता इंजेक्शन का उपयोग करते हुए, कोणीय पारंपरिक रूप से सर्वर-साइड सेवाओं, जैसे कि दृश्य-निर्भर नियंत्रकों को क्लाइंट-साइड वेब अनुप्रयोगों में लाया। नतीजतन, सर्वर पर अधिकांश बोझ कम किया जा सकता है। स्कोप एंगुलरजेएस ने "स्कोप" शब्द का उपयोग कंप्यूटर विज्ञान के मूल सिद्धांतों के समान तरीके से किया। कंप्यूटर विज्ञान में दायरा बताता है कि कार्यक्रम में एक विशेष बंधन कब मान्य होता है। ईसीएमए-262 विनिर्देशन दायरे को इस प्रकार परिभाषित करता हैः एक शाब्दिक वातावरण जिसमें एक कार्य वस्तु को क्लाइंट-साइड वेब स्क्रिप्ट में निष्पादित किया जाता है; लैम्ब्डा कलन में दायरे को कैसे परिभाषित किया जाता है। "एमवीसी" वास्तुकला के एक भाग के रूप में, दायरा "मॉडल" बनाता है, और दायरे में परिभाषित सभी चर को "व्यू" के साथ-साथ "नियंत्रक" द्वारा एक्सेस किया जा सकता है। दायरा एक गोंद के रूप में व्यवहार करता है और "व्यू" और "कंट्रोलर" को बांधता है। बूटस्ट्रैप एंगुलरजेएस बूटस्ट्रैपर द्वारा किया गया कार्य डी. ओ. एम. के लोड होने के बाद तीन चरणों में हुआः डी. ओ. एम. को सजाने वाले निर्देशों के एक नए इंजेक्टर संकलन का निर्माण एंगुलरजेएस निर्देशों के दायरे में सभी निर्देशों को जोड़ने से डेवलपर को कस्टम और पुनः प्रयोज्य एच. टी. एम. एल. जैसे तत्वों और विशेषताओं को निर्दिष्ट करने की अनुमति मिली जो डेटा बाइंडिंग और प्रस्तुति घटकों के व्यवहार को परिभाषित करते हैं। कुछ सबसे अधिक उपयोग किए जाने वाले निर्देश थेः एनजी-एनिमेट ए मॉड्यूल मौजूदा कोर और कस्टम निर्देशों के भीतर जावास्क्रिप्ट, सीएसएस3 संक्रमण और सीएसएस3 कीफ्रेम एनीमेशन हुक के लिए समर्थन प्रदान करता है। चूँकि एनजी-* विशेषताएँ एचटीएमएल विनिर्देशों में मान्य नहीं हैं, इसलिए डेटा-एनजी-* का उपयोग उपसर्ग के रूप में भी किया जा सकता है। उदाहरण के लिए, एंगुलरजेएस में एनजी-ऐप और डेटा-एनजी-ऐप दोनों मान्य हैं। एनजी-ऐप एक एंगुलरजेएस अनुप्रयोग के मूल तत्व को घोषित करता है, जिसके तहत निर्देशों का उपयोग बंधन घोषित करने और व्यवहार को परिभाषित करने के लिए किया जा सकता है। सामान्य ए. आर. आई. ए. विशेषताओं की अभिगम्यता समर्थन के लिए एनजी-एरिया एक मॉड्यूल। एनजी-बाइंड एक डीओएम तत्व के पाठ को एक अभिव्यक्ति के मूल्य पर सेट करता है। उदाहरण के लिए, <स्पैन एनजी-बाइंड = "नाम"> </स्पैन> स्पैन तत्व के अंदर 'नाम' का मान प्रदर्शित करता है। अनुप्रयोग के दायरे में चर 'नाम' में कोई भी परिवर्तन तुरंत डी. ओ. एम. में परिलक्षित होता है। एनजी-वर्ग एक बूलियन अभिव्यक्ति के मूल्य के आधार पर एक वर्ग को सशर्त रूप से लागू करता है। एनजी-नियंत्रक एक जावास्क्रिप्ट नियंत्रक वर्ग को निर्दिष्ट करता है जो एचटीएमएल अभिव्यक्तियों का मूल्यांकन करता है। एन. जी.-आई. एफ. बेसिक आई. एफ. कथन निर्देश जो निम्नलिखित तत्व को त्वरित करता है यदि शर्तें सही हैं। जब शर्त गलत होती है, तो तत्व को डी. ओ. एम. से हटा दिया जाता है। जब सही होता है, तो संकलित तत्व का एक क्लोन फिर से डाला जाता है। एनजी-इनिट एक बार कॉल किया जाता है जब तत्व आरंभ किया जाता है। एनजी-मॉडल एनजी-बाइंड के समान है, लेकिन दृश्य और दायरे के बीच दो-तरफा डेटा बाइंडिंग स्थापित करता है। एनजी-मॉडल-विकल्प मॉडल अद्यतन कैसे किए जाते हैं, इसके लिए ट्यूनिंग प्रदान करता है। एनजी-रिपीट एक संग्रह से प्रति आइटम एक बार एक तत्व को तुरंत करें। एनजी-शो और एनजी-हाइड एक बूलियन अभिव्यक्ति के मूल्य के आधार पर एक तत्व को सशर्त रूप से दिखाएँ या छिपाएँ। सी. एस. एस. प्रदर्शन शैली सेट करके दिखाएँ और छुपाएँ प्राप्त किया जाता है। एनजी-स्विच एक चयन अभिव्यक्ति के मूल्य के आधार पर विकल्पों के एक सेट से एक टेम्पलेट को सशर्त रूप से तुरंत बदल देता है। एनजी-व्यू निर्दिष्ट नियंत्रकों द्वारा संचालित टेम्पलेट प्रस्तुत करने से पहले जे. एस. ओ. एन. को हल करने वाले मार्गों को संभालने के लिए जिम्मेदार आधार निर्देश है। दो-तरफा डेटा बाइंडिंग एंगुलरजेएस दो-तरफा डेटा बाइंडिंग की अपनी सबसे उल्लेखनीय विशेषता थी, जो सर्वर बैकएंड को टेम्पलेटिंग जिम्मेदारियों से काफी हद तक राहत देती है। इसके बजाय, मॉडल में परिभाषित दायरे में निहित डेटा के अनुसार टेम्प्लेट को सादे एच. टी. एम. एल. में प्रस्तुत किया गया था। कोणीय में $स्कोप सेवा ने मॉडल अनुभाग में परिवर्तनों का पता लगाया और एक नियंत्रक के माध्यम से दृश्य में एच. टी. एम. एल. अभिव्यक्तियों को संशोधित किया। इसी तरह, दृश्य में कोई भी परिवर्तन मॉडल में परिलक्षित हुआ। इसने सक्रिय रूप से डी. ओ. एम. में हेरफेर करने की आवश्यकता को दरकिनार कर दिया और वेब अनुप्रयोगों के बूटस्ट्रैपिंग और तेजी से प्रोटोटाइपिंग को प्रोत्साहित किया। एंगुलरजेएस ने डर्टी-चेकिंग की प्रक्रिया में पहले संग्रहीत मूल्यों के साथ वर्तमान मूल्यों की तुलना करके मॉडल में परिवर्तनों का पता लगाया, जबकि Ember.js और Backbone.js ने मॉडल मूल्यों को बदलने पर श्रोताओं को प्रेरित किया। $वॉच एक कोणीय विधि है जिसका उपयोग गंदी जाँच के लिए किया जाता है। $स्कोप में असाइन किया गया कोई भी चर या अभिव्यक्ति स्वचालित रूप से कोणीय में a सेट करती है। इसलिए एक चर को निर्दिष्ट करना या निर्देश आदि का उपयोग करना। सभी स्वचालित रूप से कोणीय दायरे में घड़ियाँ बनाते हैं। कोणीय में एक दर्शक को परिभाषित करने के विभिन्न तरीकों से वस्तुओं में कोणीय एक सरल सरणी बनाए रखता है। स्पष्ट रूप से एक विशेषता को देखें। $स्कोप. $वॉच ('person.username', वैलिडेट यूनिक); अपने टेम्पलेट में एक अंतर्वेशन रखें (वर्तमान $स्कोप पर आपके लिए एक वॉचर बनाया जाएगा)। एक निर्देश पूछें जैसे कि आपके लिए दर्शक को परिभाषित करना। $डाइजेस्ट एक कोणीय विधि है जिसे लगातार अंतराल में कोणीय द्वारा आंतरिक रूप से लागू किया जाता है। विधि में, कोणीय अपने दायरे/बाल दायरे में सभी पर पुनरावृत्ति करता है। $अप्लाई एक कोणीय विधि है जो आंतरिक रूप से आह्वान करती है। इस विधि का उपयोग तब किया जाता है जब आप कोणीय को मैन्युअल रूप से कहना चाहते हैं कि गंदी जाँच शुरू करें (सभी को निष्पादित करें) $नष्ट करना कोणीय में एक विधि और घटना दोनों है। विधि, एक गुंजाइश और उसके सभी बच्चों को गंदी जाँच से हटा देती है। जब भी कोई $स्कोप या $नियंत्रक नष्ट हो जाता है तो घटना को कोणीय द्वारा बुलाया जाता है। एंगुलरजेएस का विकास इतिहास मूल रूप से 2009 में ब्रैट टेक एल. एल. सी. में मिस्को हेवरी द्वारा एक ऑनलाइन जे. एस. ओ. एन. भंडारण सेवा के पीछे के सॉफ्टवेयर के रूप में विकसित किया गया था, जिसकी कीमत मेगाबाइट द्वारा उद्यम के लिए आसानी से बनाए जाने वाले अनुप्रयोगों के लिए रखी गई होगी। यह उद्यम वेब डोमेन "GetAngular.com" पर स्थित था, और इसके कुछ ग्राहक थे, इससे पहले कि दोनों ने व्यावसायिक विचार को छोड़ने और एंगुलर को एक ओपन-सोर्स लाइब्रेरी के रूप में जारी करने का फैसला किया। 1.6 संस्करण ने कोणीय जे. एस. में कोणीय की कई अवधारणाओं को जोड़ा, जिसमें एक घटक-आधारित अनुप्रयोग वास्तुकला की अवधारणा भी शामिल है। इस रिलीज ने दूसरों के बीच सैंडबॉक्स को हटा दिया, जिसे कई डेवलपर्स का मानना था कि सैंडबॉक्स को दरकिनार करने वाली कई कमजोरियों के बावजूद अतिरिक्त सुरक्षा प्रदान की गई थी। एंगुलरजेएस की वर्तमान (मार्च 2020 तक) स्थिर रिलीज 1.7.9 है जनवरी 2018 में, एंगुलरजेएस को चरणबद्ध तरीके से समाप्त करने के लिए एक अनुसूची की घोषणा की गई थीः 1.7.0 जारी करने के बाद, एंगुलरजेएस पर सक्रिय विकास 30 जून, 2018 तक जारी रहेगा। इसके बाद, 31 दिसंबर, 2021 तक दीर्घकालिक समर्थन के रूप में 1.7 का समर्थन किया गया। लिगेसी ब्राउज़र समर्थन संस्करण 1.3 और एंगुलरजेएस के बाद के संस्करण इंटरनेट एक्सप्लोरर 8 या उससे पहले का समर्थन नहीं करते थे। जबकि एंगुलरजेएस 1.2 आई. ई. 8 का समर्थन करता है, इसकी टीम नहीं करती है। एंगुलरजेएस के एंगुलर और एंगुलरडार्ट के बाद के संस्करणों को केवल एंगुलर कहा जाता है। कोणीय, कोणीय जे. एस. का एक असंगत टाइपस्क्रिप्ट-आधारित पुनर्लेखन है। कोणीय 4 की घोषणा 13 दिसंबर 2016 को की गई थी, जिसमें राउटर पैकेज के संस्करण के गलत संरेखण के कारण भ्रम से बचने के लिए 3 को छोड़ दिया गया था, जिसे पहले से ही v3.3.0 के रूप में वितरित किया गया था। एंगुलरडार्ट डार्ट पर काम करता है, जो सी शैली वाक्यविन्यास का उपयोग करने वाली एक वस्तु-उन्मुख, वर्ग परिभाषित, एकल विरासत प्रोग्रामिंग भाषा है, जो एंगुलर जेएस (जो जावास्क्रिप्ट का उपयोग करता है) और एंगुलर 2/एंगुलर 4 (जो टाइपस्क्रिप्ट का उपयोग करता है) से अलग है। कोणीय 4 मार्च 2017 में जारी किया गया, जिसमें ढांचे के संस्करण का उपयोग राउटर के संस्करण संख्या के साथ किया गया था। कोणीय 5 को 1 नवंबर, 2017 को जारी किया गया था। कोणीय 5 में प्रमुख सुधारों में प्रगतिशील वेब ऐप के लिए समर्थन, एक निर्माण अनुकूलन और सामग्री डिजाइन से संबंधित सुधार शामिल हैं। एंगुलर 6 को 3 मई 2018 को, एंगुलर 7 को 18 अक्टूबर 2018 को और एंगुलर 8 को 28 मई 2019 को जारी किया गया था। कोणीय शब्दार्थ संस्करण मानकों का पालन करता है, जिसमें प्रत्येक प्रमुख संस्करण संख्या संभावित रूप से टूटने वाले परिवर्तनों का संकेत देती है। कोणीय ने प्रत्येक प्रमुख संस्करण के लिए 6 महीने का सक्रिय समर्थन और उसके बाद 12 महीने का दीर्घकालिक समर्थन प्रदान करने का वादा किया है। प्रत्येक प्रमुख रिलीज के लिए 1 से 3 छोटी रिलीज़ के साथ प्रमुख रिलीज़ द्विवार्षिक होती हैं। कोणीय सार्वभौमिक एक सामान्य कोणीय अनुप्रयोग ब्राउज़र में निष्पादित होता है, जबकि कोणीय सार्वभौमिक सर्वर-साइड प्रतिपादन (एसएसआर) के माध्यम से सर्वर पर स्थिर अनुप्रयोग पृष्ठ उत्पन्न करता है। पुस्तकालय एंगुलरजेएस मैटेरियल एंगुलरजेएस मैटेरियल एक यूआई घटक पुस्तकालय था जिसने एंगुलरजेएस में मैटेरियल डिजाइन को लागू किया। पुस्तकालय ने पुनः प्रयोज्य, अच्छी तरह से परीक्षण किए गए और सुलभ यू. आई. घटकों का एक समूह प्रदान किया। जनवरी 2022 में, पुस्तकालय को बंद कर दिया गया था, जैसा कि उनकी आधिकारिक वेबसाइट पर घोषणा की गई थी। एंगुलरजेएस मैटेरियल लाइब्रेरी एक परिपक्व और स्थिर उत्पाद है जो उत्पादन उपयोग के लिए तैयार है और केवल एंगुलरजेएस 1. x के साथ काम करता है। कोणीय सामग्री पुस्तकालय कोणीय/सामग्री2 गिटहब भंडार में उपलब्ध है। जुलाई 2012 में, कोणीय टीम ने गूगल क्रोम ब्राउज़र के लिए एक विस्तार बनाया जिसे बतारंग कहा जाता है, जिसने कोणीय के साथ निर्मित वेब अनुप्रयोगों के लिए डिबगिंग अनुभव में सुधार किया। विस्तार का उद्देश्य प्रदर्शन की बाधाओं का आसानी से पता लगाने की अनुमति देना और अनुप्रयोगों को डीबग करने के लिए एक जीयूआई की पेशकश करना था। 2014 के अंत और 2015 की शुरुआत के दौरान कुछ समय के लिए, विस्तार कोणीय की हाल की रिलीज़ (v1.2.x के बाद) के साथ संगत नहीं था। इस विस्तार के लिए अंतिम अद्यतन 4 अप्रैल, 2017 को किया गया था। प्रदर्शन कोणीय जे. एस. ने पाचन चक्र का प्रतिमान निर्धारित किया। इस चक्र को एक लूप माना जा सकता है, जिसके दौरान एंगुलरजेएस ने जाँच की कि क्या सभी $स्कोप द्वारा देखे गए सभी चर में कोई परिवर्तन हुआ है। यदि $scope.myVar को एक नियंत्रक में परिभाषित किया गया है और इस चर को देखने के लिए चिह्नित किया गया है, तो कोणीय प्रत्येक लूप पुनरावृत्ति में मायवार पर परिवर्तनों की निगरानी करेगा। यह दृष्टिकोण संभावित रूप से धीमी प्रतिपादन का कारण बना जब एंगुलरजेएस ने हर चक्र में $दायरे में बहुत अधिक चर की जाँच की। मिश्को हेवरी ने किसी भी पृष्ठ पर 2000 से कम दर्शकों को रखने का सुझाव दिया। यह भी देखें React.js Vue.js पॉलिमर (पुस्तकालय) जावास्क्रिप्ट ढांचे की तुलना संदर्भ आगे पढ़ने के लिए बाहरी लिंक अजाक्स (प्रोग्रामिंग) गूगल सॉफ्टवेयर सॉफ्टवेयर एमआईटी लाइसेंस 2010 सॉफ्टवेयर जावास्क्रिप्ट पुस्तकालयों का उपयोग करते हुए