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 এনক্যাপসুলেশন সহ — ডিজাইন সিস্টেম এবং মাইক্রো-ফ্রন্টেন্ডের জন্য আদর্শ যা বিভিন্ন স্ট্যাক ব্যবহার করে এমন দলের মধ্যে শেয়ার করা হয়।
Shoelade এর মতো লাইব্রেরিগুলি কীভাবে ফ্রেমওয়ার্ক-অজ্ঞেয় কম্পোনেন্ট শিপ করে তা এটি।
ট্রেড-অফস (ভারবহুল API, SSR/স্টাইলিং জটিলতা) মানে অ্যাপ ডেভেলপাররা প্রায়ই এখনও React/Vue পছন্দ করেন, কিন্তু প্ল্যাটফর্ম প্রাইমিটিভ শক্তিশালী এবং মান-ভিত্তিক।