वेब घटक: Difference between revisions
No edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
=== कस्टम तत्व=== | === कस्टम तत्व=== | ||
कस्टम तत्वों के दो भाग हैं: स्वायत्त कस्टम तत्व और अनुकूलित अंतर्निहित तत्व। स्वायत्त कस्टम तत्व [[HTML|एचटीएमएल]] तत्व हैं जो मूल एचटीएमएल तत्वों से पूरी तरह से | कस्टम तत्वों के दो भाग हैं: स्वायत्त कस्टम तत्व और अनुकूलित अंतर्निहित तत्व। स्वायत्त कस्टम तत्व [[HTML|एचटीएमएल]] तत्व हैं जो मूल एचटीएमएल तत्वों से पूरी तरह से भिन्न होते हैं; वे अनिवार्य रूप से कस्टम एलिमेंट्स [[अप्लिकेशन प्रोग्रामिंग अंतरफलक]] का उपयोग करके नीचे से ऊपर तक बनाए गए हैं। अनुकूलित अंतर्निर्मित तत्व वे तत्व हैं जो अपनी कार्यक्षमता का पुन: उपयोग करने के लिए मूल एचटीएमएल तत्वों पर निर्मित होते हैं।<ref>{{Cite web|url=https://www.w3.org/TR/custom-elements/|title=कस्टम तत्व|website=www.w3.org|access-date=2016-12-01}}</ref> | ||
=== छाया डोम === | === छाया डोम === | ||
शैडो DOM एक कार्यक्षमता है जो [[वेब ब्राउज़र]] को [[दस्तावेज़ ऑब्जेक्ट मॉडल]] तत्वों को मुख्य दस्तावेज़ DOM ट्री में डाले बिना प्रस्तुत करने की अनुमति देती है। यह डेवलपर और ब्राउज़र तक पहुँचने के | शैडो DOM एक कार्यक्षमता है जो [[वेब ब्राउज़र]] को [[दस्तावेज़ ऑब्जेक्ट मॉडल]] तत्वों को मुख्य दस्तावेज़ DOM ट्री में डाले बिना प्रस्तुत करने की अनुमति देती है। यह डेवलपर और ब्राउज़र तक पहुँचने के समूह एक अवरोध उत्पन्न करता है; डेवलपर शैडो DOM तक उसी तरह नहीं पहुंच सकता है जिस तरह से वे नेस्टेड तत्वों के साथ करते हैं, जबकि ब्राउज़र उस कोड को उसी तरह प्रस्तुत और संशोधित कर सकता है जैसे वह नेस्टेड तत्वों के साथ करता है। किसी विशेष तत्व के शैडो डोम के अंदर सीएसएस के सीमा का प्रभाव यह है कि एचटीएमएल तत्वों को [[व्यापक शैली पत्रक]] शैलियों के लीक होने और उन तत्वों को प्रभावित करने के कठिन परिस्थिति के बिना एनकैप्सुलेट किया जा सकता है जिन्हें उन्हें प्रभावित नहीं करना चाहिए था। यद्यपि यह तत्व एचटीएमएल और CSS के संबंध में संक्षिप्त हैं, फिर भी वे ऐसी घटनाओं को सक्रिय कर सकते हैं जिन्हें दस्तावेज़ में अन्य तत्वों द्वारा उठाया जा सकता है।<ref>{{Cite web|url=https://glazkov.com/2011/01/14/what-the-heck-is-shadow-dom/|title=What the Heck is Shadow DOM?|date=2011-01-15|website=Dimitri Glazkov|access-date=2016-12-01}}</ref><ref name=":0">{{Cite web|url=https://developers.google.com/web/fundamentals/getting-started/primers/shadowdom|title=Shadow DOM v1: Self-Contained Web Components {{!}} Web {{!}} Google Developers|website=Google Developers|access-date=2016-12-01}}</ref> | ||
किसी तत्व में स्कोप्ड सबट्री को छाया वृक्ष कहा जाता है। छाया वृक्ष जिस तत्व से जुड़ा होता है उसे छाया होस्ट कहा जाता है।<ref name=":0" /> | किसी तत्व में स्कोप्ड सबट्री को छाया वृक्ष कहा जाता है। छाया वृक्ष जिस तत्व से जुड़ा होता है उसे छाया होस्ट कहा जाता है।<ref name=":0" /> | ||
शैडो डोम को | शैडो डोम को सदैव किसी सम्मिलिता तत्व से जोड़ा जाना चाहिए, या तब इसे शाब्दिक तत्व के रूप में जोड़कर या [[स्क्रिप्ट (कंप्यूटर प्रोग्रामिंग)]] के माध्यम से। [[जावास्क्रिप्ट]] में, शैडो DOMs का उपयोग करके एक तत्व से जुड़े होते हैं <code>Element.attachShadow()</code>.<ref>{{Cite web|url=https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM|title=छाया डोम|website=Mozilla Developer Network|access-date=2016-12-01}}</ref> | ||
=== एचटीएमएल टेम्पलेट === | === एचटीएमएल टेम्पलेट === | ||
एचटीएमएल टेम्प्लेट एचटीएमएल के उन हिस्सों को सम्मिलित करने का एक प्रणाली है जिन पर इच्छानुसार मुहर लगाई जाती है। एचटीएमएल टेम्प्लेट का सिंटैक्स इस तरह दिखता है: | एचटीएमएल टेम्प्लेट एचटीएमएल के उन हिस्सों को सम्मिलित करने का एक प्रणाली है जिन पर इच्छानुसार मुहर लगाई जाती है। एचटीएमएल टेम्प्लेट का सिंटैक्स इस तरह दिखता है: | ||
Line 37: | Line 37: | ||
== पुस्तकालय == | == पुस्तकालय == | ||
ऐसी | ऐसी अनेक लाइब्रेरी हैं जो कस्टम तत्वों को बनाते समय अमूर्तता के स्तर को बढ़ाने के उद्देश्य से वेब घटकों पर बनाई गई हैं। इनमें से कुछ लाइब्रेरी हैं [https://x-tag.github.io/ X-Tag], [https://slimjs.com/ Slim.js], [[ पॉलिमर (पुस्तकालय) ]], [https://bosonic.github .io/ बोसोनिक], [https://riot.js.org/ Riot.js], [https://developer.salesforce.com/docs/component-library/documentation/en/lwc सेल्सफोर्स लाइटनिंग वेब कंपोनेंट्स], [https://www.dataformsjs.com/ DataFormsJS] और [https://github.com/telepath-elements/telepathic-element/ टेलीपैथी] | ||
उपरोक्त सूची से, बोसोनिक, पॉलिमर, टेलीपैथी और डेटाफॉर्मजेएस, सभी तैयार घटक प्रदान करते हैं जो उपयोग के लिए निःशुल्क हैं। इन घटकों का परस्पर उपयोग किया जा सकता है क्योंकि | उपरोक्त सूची से, बोसोनिक, पॉलिमर, टेलीपैथी और डेटाफॉर्मजेएस, सभी तैयार घटक प्रदान करते हैं जो उपयोग के लिए निःशुल्क हैं। इन घटकों का परस्पर उपयोग किया जा सकता है क्योंकि यह सभी खुली वेब प्रौद्योगिकियों पर निर्मित हैं। जबकि बोसोनिक, पॉलिमर और डेटाफॉर्मजेएस में कहीं अधिक पूर्व-निर्मित घटक हैं। टेलीपैथी धातु के सबसे करीब है क्योंकि इसका एकमात्र ध्यान डेवलपर को आसानी से बनाए रखने वाले वेब घटकों को तेजी से बनाने में सहायता करने पर है।<ref>{{Cite web|url=https://vaadin.com/blog/web-components-in-production-use-are-we-there-yet-|title=Web Components in production use – are we there yet?|website=vaadin.com|access-date=2016-11-21}}</ref> | ||
== समुदाय == | == समुदाय == | ||
वेब कंपोनेंट इकोसिस्टम के लिए | वेब कंपोनेंट इकोसिस्टम के लिए अनेक सामुदायिक प्रयास हैं। WebComponents.org<ref>{{Cite web|url=https://www.webcomponents.org/search|title=Search available Web Components}}</ref> किसी भी सम्मिलिता वेब घटक, हर स्थान कस्टम तत्वों को खोजने के लिए एक इंटरफ़ेस प्रदान करता है<ref>{{Cite web|url=https://custom-elements-everywhere.com|title=Validate Front-end Frameworks with Web Components Standard}}</ref> यह सत्यापित करता है कि लोकप्रिय फ्रंट-एंड फ्रेमवर्क संगत हैं और लंबित बग और उपलब्ध वर्कअराउंड के समूह के साथ वेब घटक मानक का उपयोग करने के लिए तैयार हैं। इसके अतिरिक्त, वाडिन ट्यूटोरियल<ref>{{Cite web|url=https://vaadin.com/learn/tutorials?query=web%20components|title=Web Components Tutorials}}</ref> इसमें एक समर्पित अनुभाग है जो दिखाता है कि उदाहरण डेमो ऐप्स और इसी तरह से संबंधित विषयों के साथ उन वर्कअराउंड का कुशलतापूर्वक उपयोग कैसे किया जाता है। | ||
== इतिहास == | == इतिहास == | ||
Line 53: | Line 53: | ||
2017 में, Ionic (मोबाइल ऐप फ्रेमवर्क) टीम ने StensilJS बनाया, एक जावास्क्रिप्ट कंपाइलर जो वेब कंपोनेंट्स जेनरेट करता है।<ref>{{cite web|url=https://levelup.gitconnected.com/web-component-solutions-a-comparison-e2fa25c34730|title=Web Component Solutions: A Comparison}}</ref> | 2017 में, Ionic (मोबाइल ऐप फ्रेमवर्क) टीम ने StensilJS बनाया, एक जावास्क्रिप्ट कंपाइलर जो वेब कंपोनेंट्स जेनरेट करता है।<ref>{{cite web|url=https://levelup.gitconnected.com/web-component-solutions-a-comparison-e2fa25c34730|title=Web Component Solutions: A Comparison}}</ref> | ||
2018 में, एंगुलर 6 ने एंगुलर एलिमेंट्स प्रस्तुतकिए जो आपको अपने एंगुलर घटकों को कस्टम वेब तत्वों के रूप में पैकेज करने की सुविधा देते हैं, जो वेब प्लेटफ़ॉर्म एपीआई के वेब घटकों के | 2018 में, एंगुलर 6 ने एंगुलर एलिमेंट्स प्रस्तुतकिए जो आपको अपने एंगुलर घटकों को कस्टम वेब तत्वों के रूप में पैकेज करने की सुविधा देते हैं, जो वेब प्लेटफ़ॉर्म एपीआई के वेब घटकों के समूह का हिस्सा हैं।<ref>{{cite web|url=https://www.freecodecamp.org/news/how-to-create-angular-6-custom-elements-web-components-c88814dc6e0a/|title=How to create Angular 6 Custom Elements and Web Components}}</ref> | ||
2018 में, [[फ़ायरफ़ॉक्स]] 63 ने वेब कंपोनेंट्स समर्थन को डिफ़ॉल्ट रूप से सक्षम किया और उन्हें समर्थन देने के लिए डेवलपर टूल को अपडेट किया।<ref>{{Cite web | url=https://blog.nightly.mozilla.org/2018/09/06/developer-tools-support-for-web-components-in-firefox-63/ |title = Developer Tools support for Web Components in Firefox 63}}</ref> | 2018 में, [[फ़ायरफ़ॉक्स]] 63 ने वेब कंपोनेंट्स समर्थन को डिफ़ॉल्ट रूप से सक्षम किया और उन्हें समर्थन देने के लिए डेवलपर टूल को अपडेट किया।<ref>{{Cite web | url=https://blog.nightly.mozilla.org/2018/09/06/developer-tools-support-for-web-components-in-firefox-63/ |title = Developer Tools support for Web Components in Firefox 63}}</ref> |
Revision as of 09:59, 15 July 2023
वेब घटक सुविधाओं का एक समूह है जो वेब के लिए एक मानक घटक मॉडल प्रदान करता है[1] एनकैप्सुलेशन (ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग) और व्यक्तिगत एचटीएमएल तत्वों की अंतर की अनुमति देना। वेब कंपोनेंट माइक्रोफ्रंटेंड बनाने का लोकप्रिय प्रणाली है।
वेब घटक बनाने के लिए उपयोग की जाने वाली प्राथमिक विधि ों में सम्मिलित हैं:[2]
- कस्टम तत्व
- नए एचटीएमएल तत्वों को परिभाषित करने के लिए एपीआई
- छाया डोम
- संपुटित DOM और स्टाइल, रचना के साथ
- एचटीएमएल टेम्प्लेट
- एचटीएमएल टुकड़े जो प्रस्तुत नहीं किए गए हैं, किन्तु जावास्क्रिप्ट के माध्यम से तत्काल होने तक संग्रहीत किए गए हैं[3]
विशेषताएँ
कस्टम तत्व
कस्टम तत्वों के दो भाग हैं: स्वायत्त कस्टम तत्व और अनुकूलित अंतर्निहित तत्व। स्वायत्त कस्टम तत्व एचटीएमएल तत्व हैं जो मूल एचटीएमएल तत्वों से पूरी तरह से भिन्न होते हैं; वे अनिवार्य रूप से कस्टम एलिमेंट्स अप्लिकेशन प्रोग्रामिंग अंतरफलक का उपयोग करके नीचे से ऊपर तक बनाए गए हैं। अनुकूलित अंतर्निर्मित तत्व वे तत्व हैं जो अपनी कार्यक्षमता का पुन: उपयोग करने के लिए मूल एचटीएमएल तत्वों पर निर्मित होते हैं।[4]
छाया डोम
शैडो DOM एक कार्यक्षमता है जो वेब ब्राउज़र को दस्तावेज़ ऑब्जेक्ट मॉडल तत्वों को मुख्य दस्तावेज़ DOM ट्री में डाले बिना प्रस्तुत करने की अनुमति देती है। यह डेवलपर और ब्राउज़र तक पहुँचने के समूह एक अवरोध उत्पन्न करता है; डेवलपर शैडो DOM तक उसी तरह नहीं पहुंच सकता है जिस तरह से वे नेस्टेड तत्वों के साथ करते हैं, जबकि ब्राउज़र उस कोड को उसी तरह प्रस्तुत और संशोधित कर सकता है जैसे वह नेस्टेड तत्वों के साथ करता है। किसी विशेष तत्व के शैडो डोम के अंदर सीएसएस के सीमा का प्रभाव यह है कि एचटीएमएल तत्वों को व्यापक शैली पत्रक शैलियों के लीक होने और उन तत्वों को प्रभावित करने के कठिन परिस्थिति के बिना एनकैप्सुलेट किया जा सकता है जिन्हें उन्हें प्रभावित नहीं करना चाहिए था। यद्यपि यह तत्व एचटीएमएल और CSS के संबंध में संक्षिप्त हैं, फिर भी वे ऐसी घटनाओं को सक्रिय कर सकते हैं जिन्हें दस्तावेज़ में अन्य तत्वों द्वारा उठाया जा सकता है।[5][6] किसी तत्व में स्कोप्ड सबट्री को छाया वृक्ष कहा जाता है। छाया वृक्ष जिस तत्व से जुड़ा होता है उसे छाया होस्ट कहा जाता है।[6]
शैडो डोम को सदैव किसी सम्मिलिता तत्व से जोड़ा जाना चाहिए, या तब इसे शाब्दिक तत्व के रूप में जोड़कर या स्क्रिप्ट (कंप्यूटर प्रोग्रामिंग) के माध्यम से। जावास्क्रिप्ट में, शैडो DOMs का उपयोग करके एक तत्व से जुड़े होते हैं Element.attachShadow()
.[7]
एचटीएमएल टेम्पलेट
एचटीएमएल टेम्प्लेट एचटीएमएल के उन हिस्सों को सम्मिलित करने का एक प्रणाली है जिन पर इच्छानुसार मुहर लगाई जाती है। एचटीएमएल टेम्प्लेट का सिंटैक्स इस तरह दिखता है:
<html>
<template>
<h1><slot name="title"></slot></h1>
<p><slot name="description"></slot></p>
</template>
</html>
स्क्रिप्ट नहीं चलेंगी, और जो संसाधन टेम्पलेट के अंदर हैं उन्हें तब तक नहीं लाया जाएगा जब तक कि टेम्पलेट पर मुहर नहीं लग जाती।[8]
ब्राउज़र समर्थन
वेब घटक सभी प्रमुख ब्राउज़रों के वर्तमान संस्करणों द्वारा समर्थित हैं।[9] पुराने ब्राउज़रों के साथ बैकवर्ड संगतता जावास्क्रिप्ट-आधारित पॉलीफ़िल (प्रोग्रामिंग) का उपयोग करके कार्यान्वित की जाती है।
पुस्तकालय
ऐसी अनेक लाइब्रेरी हैं जो कस्टम तत्वों को बनाते समय अमूर्तता के स्तर को बढ़ाने के उद्देश्य से वेब घटकों पर बनाई गई हैं। इनमें से कुछ लाइब्रेरी हैं X-Tag, Slim.js, पॉलिमर (पुस्तकालय) , .io/ बोसोनिक, Riot.js, सेल्सफोर्स लाइटनिंग वेब कंपोनेंट्स, DataFormsJS और टेलीपैथी
उपरोक्त सूची से, बोसोनिक, पॉलिमर, टेलीपैथी और डेटाफॉर्मजेएस, सभी तैयार घटक प्रदान करते हैं जो उपयोग के लिए निःशुल्क हैं। इन घटकों का परस्पर उपयोग किया जा सकता है क्योंकि यह सभी खुली वेब प्रौद्योगिकियों पर निर्मित हैं। जबकि बोसोनिक, पॉलिमर और डेटाफॉर्मजेएस में कहीं अधिक पूर्व-निर्मित घटक हैं। टेलीपैथी धातु के सबसे करीब है क्योंकि इसका एकमात्र ध्यान डेवलपर को आसानी से बनाए रखने वाले वेब घटकों को तेजी से बनाने में सहायता करने पर है।[10]
समुदाय
वेब कंपोनेंट इकोसिस्टम के लिए अनेक सामुदायिक प्रयास हैं। WebComponents.org[11] किसी भी सम्मिलिता वेब घटक, हर स्थान कस्टम तत्वों को खोजने के लिए एक इंटरफ़ेस प्रदान करता है[12] यह सत्यापित करता है कि लोकप्रिय फ्रंट-एंड फ्रेमवर्क संगत हैं और लंबित बग और उपलब्ध वर्कअराउंड के समूह के साथ वेब घटक मानक का उपयोग करने के लिए तैयार हैं। इसके अतिरिक्त, वाडिन ट्यूटोरियल[13] इसमें एक समर्पित अनुभाग है जो दिखाता है कि उदाहरण डेमो ऐप्स और इसी तरह से संबंधित विषयों के साथ उन वर्कअराउंड का कुशलतापूर्वक उपयोग कैसे किया जाता है।
इतिहास
2011 में, फ्रंटियर्स कॉन्फ्रेंस में एलेक्स रसेल द्वारा पहली बार वेब कंपोनेंट्स प्रस्तुतकिए गए थे।[14]
2013 में, Google द्वारा वेब कंपोनेंट्स पर आधारित एक लाइब्रेरी, पॉलिमर (लाइब्रेरी) जारी की गई थी।[15]
2016 में, RequireJS को कस्टम तत्वों के लिए जावास्क्रिप्ट लाइब्रेरी और अतुल्यकालिक मॉड्यूल परिभाषा लोडर प्लगइन के रूप में प्रस्तुतकिया गया था।[16]
2017 में, Ionic (मोबाइल ऐप फ्रेमवर्क) टीम ने StensilJS बनाया, एक जावास्क्रिप्ट कंपाइलर जो वेब कंपोनेंट्स जेनरेट करता है।[17]
2018 में, एंगुलर 6 ने एंगुलर एलिमेंट्स प्रस्तुतकिए जो आपको अपने एंगुलर घटकों को कस्टम वेब तत्वों के रूप में पैकेज करने की सुविधा देते हैं, जो वेब प्लेटफ़ॉर्म एपीआई के वेब घटकों के समूह का हिस्सा हैं।[18]
2018 में, फ़ायरफ़ॉक्स 63 ने वेब कंपोनेंट्स समर्थन को डिफ़ॉल्ट रूप से सक्षम किया और उन्हें समर्थन देने के लिए डेवलपर टूल को अपडेट किया।[19]
2018 में, LitElement को Google Chrome टीम द्वारा बड़े पॉलिमर (लाइब्रेरी) प्रोजेक्ट के हिस्से के रूप में विकसित किया गया था। लिटएलिमेंट को वेब घटकों को बनाने के लिए एक हल्के और उपयोग में आसान ढांचे के रूप में डिजाइन किया गया था।
संदर्भ
- ↑ GitHub - w3c/webcomponents: Web Components specifications., World Wide Web Consortium, 2019-01-03, retrieved 2019-01-03
- ↑ "वेब घटक". MDN Web Docs. Retrieved 2019-01-03.
- ↑ "<template>: The Content Template element". MDN Web Docs. Mozilla. Retrieved 2018-07-08.
- ↑ "कस्टम तत्व". www.w3.org. Retrieved 2016-12-01.
- ↑ "What the Heck is Shadow DOM?". Dimitri Glazkov. 2011-01-15. Retrieved 2016-12-01.
- ↑ 6.0 6.1 "Shadow DOM v1: Self-Contained Web Components | Web | Google Developers". Google Developers. Retrieved 2016-12-01.
- ↑ "छाया डोम". Mozilla Developer Network. Retrieved 2016-12-01.
- ↑ Community. "Introduction to the template elements — WebComponents.org". webcomponents.org. Retrieved 2016-12-03.
- ↑ "webcomponents.org - वेब घटकों पर चर्चा करें और साझा करें". www.webcomponents.org (in English). Retrieved 2020-07-22.
- ↑ "Web Components in production use – are we there yet?". vaadin.com. Retrieved 2016-11-21.
- ↑ "Search available Web Components".
- ↑ "Validate Front-end Frameworks with Web Components Standard".
- ↑ "Web Components Tutorials".
- ↑ "Web Components and Model Driven Views by Alex Russell · Fronteers". fronteers.nl. Retrieved 2016-12-02.
- ↑ "The state of Web Components ★ Mozilla Hacks – the Web developer blog". hacks.mozilla.org. Retrieved 2016-12-02.
- ↑ "RequireJS in Commerce".
- ↑ "Web Component Solutions: A Comparison".
- ↑ "How to create Angular 6 Custom Elements and Web Components".
- ↑ "Developer Tools support for Web Components in Firefox 63".
बाहरी संबंध
- No URL found. Please specify a URL here or add one to Wikidata.
- Web Components Specifications WICG
- webcomponents on GitHub WICG specifications
- Web Components at MDN Web Docs
- Browser Support for Custom Elements at Can I Use?
- Custom Elements Everywhere - Framework Support for Custom Elements
- Open Web Components
- What are Web Components?
- twoBirds