Web Components అనేది పునర్వినియోగపడే, ఎన్క్యాప్సులేటెడ్ కస్టమ్ HTML ఎలిమెంట్లను నిర్మించడానికి నేటివ్ బ్రౌజర్ API ల సమితి — ఫ్రేమ్వర్క్-అజ్ఞేయ మరియు ప్రమాణాల ఆధారిత. మూడు సాంకేతికతలు సమ్మిళితమవుతాయి:
Web Components అనేది పునర్వినియోగపడే, ఎన్క్యాప్సులేటెడ్ కస్టమ్ HTML ఎలిమెంట్లను నిర్మించడానికి నేటివ్ బ్రౌజర్ API ల సమితి — ఫ్రేమ్వర్క్-అజ్ఞేయ మరియు ప్రమాణాల ఆధారిత. మూడు సాంకేతికతలు సమ్మిళితమవుతాయి:
<template>, <slot>) — నిష్క్రియ, పునర్వినియోగపడే మార్కప్.class UserCard extends HTMLElement {
connectedCallback() { // lifecycle: runs when added to the page
const shadow = this.attachShadow({ mode: "open" }); // create shadow DOM
shadow.innerHTML = `
<style> h2 { color: blue; } </style>
<h2>${this.getAttribute("name")}</h2>
<slot></slot>
`;
}
}
customElements.define("user-card", UserCard); // name MUST contain a hyphen
<user-card name="Ann">Extra content goes in the slot</user-card>
శాడో రూట్ లోపల శైలులు స్కోప్డ్ — పేజీ యొక్క CSS లోపలకు చేరుకోలేము, మరియు కాంపోనెంట్ యొక్క CSS బయటకు చిందకూడదు. ఇది గ్లోబల్-CSS సమస్యను నేటివ్గా పరిష్కరిస్తుంది:
/* page CSS */ h2 { color: red; } /* does NOT affect the <h2> inside user-card */
connectedCallback() // added to DOM
disconnectedCallback() // removed from DOM (cleanup)
attributeChangedCallback(name, old, val) // an observed attribute changed
static get observedAttributes() { return ["name"]; }
Web Components మీరు ఏదైనా ఫ్రేమ్వర్క్లో (లేదా ఏదీ) పుట్టుకపై స్టైల్/DOM ఎన్క్యాప్సులేషన్తో పనిచేసే పునర్వినియోగపడే విడ్జెట్లను నిర్మించవచ్చు — డిజైన్ సిస్టమ్లు మరియు వివిధ స్టాక్లను ఉపయోగించే టీమ్ల మధ్య భాగస్వామ్యం చేసిన మైక్రో-ఫ్రంటెండ్ల కోసం ఆదర్శవంతమైనవి.
ఇది Shoelace వంటి లైబ్రరీలు ఫ్రేమ్వర్క్-అజ్ఞేయ కాంపోనెంట్లను ఎలా చేస్తాయో.
ట్రేడ్-ఆఫ్లు (సంక్ష్లిష్ట API, SSR/styling సంక్లిష్టత) యాప్ డెవలపర్లు ఇప్పటికీ React/Vue ను ఎక్కువ ఇష్టపడతారని అర్థం, కానీ ప్ల్యాట్ఫారమ్ ప్రిమిటివ్ శక్తిশాలి మరియు ప్రమాణాల ఆధారిత.