वेब घटक

From Vigyanwiki

वेब घटक सुविधाओं का समूह है जो वेब के लिए मानक घटक मॉडल प्रदान करता है[1] जो व्यक्तिगत एचटीएमएल तत्वों के एनकैप्सुलेशन और इंटरऑपरेबिलिटी की अनुमति देता है। वेब कंपोनेंट माइक्रोफ्रंटेंड बनाने का लोकप्रिय प्रणाली है।

वेब घटक बनाने के लिए उपयोग की जाने वाली प्राथमिक प्रौद्योगिकियों में सम्मिलित हैं:[2]

कस्टम तत्व
नए एचटीएमएल तत्वों को परिभाषित करने के लिए एपीआई
छाया डोम
संपुटित डीओएम और स्टाइल, रचना के साथ
एचटीएमएल टेम्प्लेट
एचटीएमएल टुकड़े जो प्रस्तुत नहीं किए गए हैं, किन्तु जावास्क्रिप्ट के माध्यम से तत्काल होने तक संग्रहीत किए गए हैं[3]

विशेषताएँ

कस्टम तत्व

कस्टम तत्वों के दो भाग हैं: स्वायत्त कस्टम तत्व और अनुकूलित अंतर्निहित तत्व। स्वायत्त कस्टम तत्व एचटीएमएल तत्व हैं जो मूल एचटीएमएल तत्वों से पूरी तरह से भिन्न होते हैं; वे अनिवार्य रूप से कस्टम एलिमेंट्स अप्लिकेशन प्रोग्रामिंग अंतरफलक एपीआई का उपयोग करके नीचे से ऊपर तक बनाए गए हैं। अनुकूलित अंतर्निर्मित तत्व वे तत्व हैं जो अपनी कार्यक्षमता का पुन: उपयोग करने के लिए मूल एचटीएमएल तत्वों पर निर्मित होते हैं।[4]

छाया डीओएम

शैडो डीओएम कार्यक्षमता है जो वेब ब्राउज़र को दस्तावेज़ ऑब्जेक्ट मॉडल तत्वों को मुख्य दस्तावेज़ डीओएम ट्री में डाले बिना प्रस्तुत करने की अनुमति देती है। यह डेवलपर और ब्राउज़र तक पहुँचने के समूह अवरोध उत्पन्न करता है; डेवलपर शैडो डीओएम तक उसी तरह नहीं पहुंच सकता है जिस तरह से वे नेस्टेड तत्वों के साथ करते हैं, जबकि ब्राउज़र उस कोड को उसी तरह प्रस्तुत और संशोधित कर सकता है जैसे वह नेस्टेड तत्वों के साथ करता है। किसी विशेष तत्व के शैडो डोम के अंदर सीएसएस के सीमा का प्रभाव यह है कि एचटीएमएल तत्वों को व्यापक शैली पत्रक शैलियों के लीक होने और उन तत्वों को प्रभावित करने के कठिन परिस्थिति के बिना एनकैप्सुलेट किया जा सकता है जिन्हें उन्हें प्रभावित नहीं करना चाहिए था। यद्यपि यह तत्व एचटीएमएल और सीएसएस के संबंध में संक्षिप्त हैं, फिर भी वे ऐसी घटनाओं को सक्रिय कर सकते हैं जिन्हें दस्तावेज़ में अन्य तत्वों द्वारा उठाया जा सकता है।[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]

पुराने ब्राउज़रों के साथ बैकवर्ड संगतता जावास्क्रिप्ट-आधारित पॉलीफ़िल (प्रोग्रामिंग) का उपयोग करके कार्यान्वित किया जाता है।

पुस्तकालय

ऐसी अनेक लाइब्रेरी हैं जो कस्टम तत्वों को बनाते समय अमूर्तता के स्तर को बढ़ाने के उद्देश्य से वेब घटकों पर बनाई गई हैं। इनमें से कुछ लाइब्रेरी हैं उदाहरण एक्स-टैग, Slim.js, पॉलिमर (पुस्तकालय) , .io/ बोसोनिक, Riot.js, सेल्सफोर्स लाइटनिंग वेब कंपोनेंट्स, डेटाफॉर्मजेएस और टेलीपैथी हैं।

उपरोक्त सूची से, बोसोनिक, पॉलिमर, टेलीपैथी और डेटाफॉर्मजेएस, सभी तैयार घटक प्रदान करते हैं जो उपयोग के लिए निःशुल्क हैं। इन घटकों का परस्पर उपयोग किया जा सकता है क्योंकि यह सभी खुली वेब प्रौद्योगिकियों पर निर्मित हैं। जबकि बोसोनिक, पॉलिमर और डेटाफॉर्मजेएस में कहीं अधिक पूर्व-निर्मित घटक हैं। टेलीपैथी "धातु के सबसे करीब" है क्योंकि इसका एकमात्र ध्यान डेवलपर को आसानी से बनाए रखने वाले वेब घटकों को तेजी से बनाने में सहायता करने पर है।[10]

समुदाय

वेब कंपोनेंट इकोसिस्टम के लिए अनेक सामुदायिक प्रयास हैं। WebComponents.org[11] किसी भी सम्मिलिता वेब घटक को खोजने के लिए इंटरफ़ेस प्रदान करता है[12], हर स्थान कस्टम तत्वों में यह सत्यापित करता है कि लोकप्रिय फ्रंट-एंड फ्रेमवर्क संगत हैं और लंबित बग और उपलब्ध वर्कअराउंड के समूह के साथ वेब घटक मानक का उपयोग करने के लिए तैयार हैं या नहीं। इसके अतिरिक्त, वाडिन ट्यूटोरियल[13] इसमें समर्पित अनुभाग है जो दिखाता है कि उदाहरण डेमो ऐप्स और इसी तरह से संबंधित विषयों के साथ उन वर्कअराउंड का कुशलतापूर्वक उपयोग कैसे किया जाता है।

इतिहास

वर्ष 2011 में, फ्रंटियर्स कॉन्फ्रेंस में एलेक्स रसेल द्वारा पहली बार वेब कंपोनेंट्स प्रस्तुत किए गए थे।[14]

वर्ष 2013 में, गूगल द्वारा वेब कंपोनेंट्स पर आधारित लाइब्रेरी, पॉलिमर (लाइब्रेरी) जारी की गई थी।[15]

वर्ष 2016 में, आवश्यकता जेएस को कस्टम तत्वों के लिए जावास्क्रिप्ट लाइब्रेरी और अतुल्यकालिक मॉड्यूल परिभाषा लोडर प्लगइन के रूप में प्रस्तुत किया गया था।[16]

वर्ष 2017 में, Ionic (मोबाइल ऐप फ्रेमवर्क) टीम ने स्टेंसिलजेएस बनाया, जो एक जावास्क्रिप्ट कंपाइलर है जो वेब कंपोनेंट्स उत्पन्न करता है।[17]

वर्ष 2018 में, एंगुलर 6 ने एंगुलर एलिमेंट्स प्रस्तुत किए जो आपको अपने एंगुलर घटकों को कस्टम वेब तत्वों के रूप में पैकेज करने की सुविधा देते हैं, जो वेब प्लेटफ़ॉर्म एपीआई के वेब घटकों के समूह का एक भाग हैं।[18]

वर्ष 2018 में, फ़ायरफ़ॉक्स 63 ने वेब कंपोनेंट्स समर्थन को डिफ़ॉल्ट रूप से सक्षम किया और उन्हें समर्थन देने के लिए डेवलपर टूल को अपडेट किया गया था।[19]

वर्ष 2018 में, लिट एलिमेंट को गूगल क्रोम टीम द्वारा बड़े पॉलिमर (लाइब्रेरी) प्रोजेक्ट के हिस्से के रूप में विकसित किया गया था। इस प्रकार लिटएलिमेंट को वेब घटकों को बनाने के लिए हल्के और उपयोग में आसान ढांचे के रूप में डिजाइन किया गया था।

संदर्भ

  1. GitHub - w3c/webcomponents: Web Components specifications., World Wide Web Consortium, 2019-01-03, retrieved 2019-01-03
  2. "वेब घटक". MDN Web Docs. Retrieved 2019-01-03.
  3. "<template>: The Content Template element". MDN Web Docs. Mozilla. Retrieved 2018-07-08.
  4. "कस्टम तत्व". www.w3.org. Retrieved 2016-12-01.
  5. "What the Heck is Shadow DOM?". Dimitri Glazkov. 2011-01-15. Retrieved 2016-12-01.
  6. 6.0 6.1 "Shadow DOM v1: Self-Contained Web Components | Web | Google Developers". Google Developers. Retrieved 2016-12-01.
  7. "छाया डोम". Mozilla Developer Network. Retrieved 2016-12-01.
  8. Community. "Introduction to the template elements — WebComponents.org". webcomponents.org. Retrieved 2016-12-03.
  9. "webcomponents.org - वेब घटकों पर चर्चा करें और साझा करें". www.webcomponents.org (in English). Retrieved 2020-07-22.
  10. "Web Components in production use – are we there yet?". vaadin.com. Retrieved 2016-11-21.
  11. "Search available Web Components".
  12. "Validate Front-end Frameworks with Web Components Standard".
  13. "Web Components Tutorials".
  14. "Web Components and Model Driven Views by Alex Russell · Fronteers". fronteers.nl. Retrieved 2016-12-02.
  15. "The state of Web Components ★ Mozilla Hacks – the Web developer blog". hacks.mozilla.org. Retrieved 2016-12-02.
  16. "RequireJS in Commerce".
  17. "Web Component Solutions: A Comparison".
  18. "How to create Angular 6 Custom Elements and Web Components".
  19. "Developer Tools support for Web Components in Firefox 63".

बाहरी संबंध