亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table of Contents
What are Custom Elements?
How to add styles and behaviors?
How to use the life cycle hook?
How to transfer data?
Home Web Front-end HTML Tutorial Building Web Components with HTML Custom Elements

Building Web Components with HTML Custom Elements

Jul 29, 2025 am 04:28 AM

Custom Elements is a core part of Web Components, allowing developers to create reusable UI components natively through HTML, CSS, and JavaScript. 1. To create custom elements, you need to inherit HTMLElement and register with customElements.define(); 2. Use Shadow DOM to implement encapsulation isolation of styles and structures; 3. Respond to component state changes through life cycle hooks such as connectedCallback, attributeChangedCallback, etc.; 4. You can achieve data transmission and update through attribute listening or custom setters; 5. Use the <slot> slot mechanism to support content insertion. The entire process does not require any framework to rely on, which is suitable for improving component development capabilities and reducing dependence on frameworks.

Building Web Components with HTML Custom Elements

Building Web Components with HTML custom elements is actually to implement reusable and well-encapsulated UI components without relying on the framework. This matter sounds a bit "advanced", but it is not difficult to do, especially suitable for those who want to improve component development capabilities or want to reduce their dependence on frameworks.

Building Web Components with HTML Custom Elements

What are Custom Elements?

Custom Elements is part of the Web Components standard and allows us to create new HTML element tags, such as <my-button></my-button> or <data-card></data-card> . Browser native support, no additional libraries are required.

To register a custom element, the basic practice is to use customElements.define() method and inherit HTMLElement class:

Building Web Components with HTML Custom Elements
 class MyButton extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({ mode: &#39;open&#39; });
    this.shadowRoot.innerHTML = `<button>Click me</button>`;
  }
}

customElements.define(&#39;my-button&#39;, MyButton);

This way you can use <my-button></my-button> directly in HTML. Simply put, it is to write a class yourself and tell the browser: "I will define this tag."


How to add styles and behaviors?

One of the core advantages of Web Components is style isolation, which is achieved through Shadow DOM. You can write structure and styles like you would write plain HTML, but it will not affect other parts of the page.

Building Web Components with HTML Custom Elements

For example, in the above MyButton class, you can add styles like this:

 this.shadowRoot.innerHTML = `
  <style>
    button {
      background: #007bff;
      color: white;
      padding: 10px 20px;
      border-radius: 4px;
      border: none;
      cursor: pointer;
    }
  </style>
  <button><slot></slot></button>
`;
  • Use the <style> tag to write the style into shadowRoot.
  • <slot> allows you to insert content, such as <my-button>提交</my-button> .

If you need event binding, you can operate it in the constructor or lifecycle hook:

 this.shadowRoot.querySelector(&#39;button&#39;).addEventListener(&#39;click&#39;, () => {
  console.log(&#39;button was clicked&#39;);
});

How to use the life cycle hook?

Custom Elements provides some lifecycle callback methods, similar to React's useEffect or Vue's mounted:

  • connectedCallback : Triggered when an element is inserted into the page
  • disconnectedCallback : fired when element is removed
  • attributeChangedCallback(attrName, oldVal, newVal) : triggered when the attribute changes
  • observedAttributes : declare which attributes will trigger attributeChangedCallback

For example, suppose you want to listen for a property called disabled :

 static get observedAttributes() {
  return [&#39;disabled&#39;];
}

attributeChangedCallback(name, oldValue, newValue) {
  if (name === &#39;disabled&#39;) {
    const button = this.shadowRoot.querySelector(&#39;button&#39;);
    button.disabled = newValue !== null;
  }
}

This way, when the user sets <my-button disabled>按鈕</my-button> , the internal button will also be disabled.


How to transfer data?

In addition to attributes, you can also pass data through attribute reflection or custom setter. For example, add a label attribute to the component:

 set label(value) {
  this._label = value;
  this.shadowRoot.querySelector(&#39;button&#39;).textContent = value;
}

get label() {
  return this._label;
}

When using it, you can do this:

 <my-button id="btn">Default text</my-button>
<script>
  document.getElementById(&#39;btn&#39;).label = &#39;New Button Text&#39;;
</script>

This method is more flexible than purely attribute and is more suitable for complex data types.


Basically that's it. Custom Elements are not complicated, but they are easy to ignore details, such as the call timing of the life cycle, the management of shadowRoot, and how to communicate with external communication. Master these and you can write truly independent and easy-to-maintain components.

The above is the detailed content of Building Web Components with HTML Custom Elements. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Applying Semantic Structure with article, section, and aside in HTML Applying Semantic Structure with article, section, and aside in HTML Jul 05, 2025 am 02:03 AM

The rational use of semantic tags in HTML can improve page structure clarity, accessibility and SEO effects. 1. Used for independent content blocks, such as blog posts or comments, it must be self-contained; 2. Used for classification related content, usually including titles, and is suitable for different modules of the page; 3. Used for auxiliary information related to the main content but not core, such as sidebar recommendations or author profiles. In actual development, labels should be combined and other, avoid excessive nesting, keep the structure simple, and verify the rationality of the structure through developer tools.

What are the essential HTML elements for structuring a webpage? What are the essential HTML elements for structuring a webpage? Jul 03, 2025 am 02:34 AM

The web page structure needs to be supported by core HTML elements. 1. The overall structure of the page is composed of , , which is the root element, which stores meta information and displays the content; 2. The content organization relies on title (-), paragraph () and block tags (such as ,) to improve organizational structure and SEO; 3. Navigation is implemented through and implemented, commonly used organizations are linked and supplemented with aria-current attribute to enhance accessibility; 4. Form interaction involves , , and , to ensure the complete user input and submission functions. Proper use of these elements can improve page clarity, maintenance and search engine optimization.

Implementing client-side form validation using HTML attributes. Implementing client-side form validation using HTML attributes. Jul 03, 2025 am 02:31 AM

Client-sideformvalidationcanbedonewithoutJavaScriptbyusingHTMLattributes.1)Userequiredtoenforcemandatoryfields.2)ValidateemailsandURLswithtypeattributeslikeemailorurl,orusepatternwithregexforcustomformats.3)Limitvaluesusingmin,max,minlength,andmaxlen

How to group options within a select dropdown using html? How to group options within a select dropdown using html? Jul 04, 2025 am 03:16 AM

Use tags in HTML to group options in the drop-down menu. The specific method is to wrap a group of elements and define the group name through the label attribute, such as: 1. Contains options such as apples, bananas, oranges, etc.; 2. Contains options such as carrots, broccoli, etc.; 3. Each is an independent group, and the options within the group are automatically indented. Notes include: ① No nesting is supported; ② The entire group can be disabled through the disabled attribute; ③ The style is restricted and needs to be beautified in combination with CSS or third-party libraries; plug-ins such as Select2 can be used to enhance functions.

Implementing Clickable Buttons Using the HTML button Element Implementing Clickable Buttons Using the HTML button Element Jul 07, 2025 am 02:31 AM

To use HTML button elements to achieve clickable buttons, you must first master its basic usage and common precautions. 1. Create buttons with tags and define behaviors through type attributes (such as button, submit, reset), which is submitted by default; 2. Add interactive functions through JavaScript, which can be written inline or bind event listeners through ID to improve maintenance; 3. Use CSS to customize styles, including background color, border, rounded corners and hover/active status effects to enhance user experience; 4. Pay attention to common problems: make sure that the disabled attribute is not enabled, JS events are correctly bound, layout occlusion, and use the help of developer tools to troubleshoot exceptions. Master this

Configuring Document Metadata Within the HTML head Element Configuring Document Metadata Within the HTML head Element Jul 09, 2025 am 02:30 AM

Metadata in HTMLhead is crucial for SEO, social sharing, and browser behavior. 1. Set the page title and description, use and keep it concise and unique; 2. Add OpenGraph and Twitter card information to optimize social sharing effects, pay attention to the image size and use debugging tools to test; 3. Define the character set and viewport settings to ensure multi-language support is adapted to the mobile terminal; 4. Optional tags such as author copyright, robots control and canonical prevent duplicate content should also be configured reasonably.

Debugging common HTML validation errors. Debugging common HTML validation errors. Jul 03, 2025 am 02:41 AM

When encountering HTML verification errors, you must first clarify the problem and correct it according to the specifications. 1. When the required attributes are missing, the src and alt and a href of img should be completed; 2. When the tag nesting is incorrect, the structure should be clarified and the tags should be closed correctly to avoid confusion in nesting block-level elements; 3. When using invalid or discarded tags, you should refer to the MDN document to replace it with modern writing methods, such as replacing center and font with CSS; 4. When character encoding problems, add metacharset="UTF-8" and ensure that the file is saved in UTF-8 format to solve it.

How to associate captions with images or media using the html figure and figcaption elements? How to associate captions with images or media using the html figure and figcaption elements? Jul 07, 2025 am 02:30 AM

Using HTML sums allows for intuitive and semantic clarity to add caption text to images or media. 1. Used to wrap independent media content, such as pictures, videos or code blocks; 2. It is placed as its explanatory text, and can be located above or below the media; 3. They not only improve the clarity of the page structure, but also enhance accessibility and SEO effect; 4. When using it, you should pay attention to avoid abuse, and apply to content that needs to be emphasized and accompanied by description, rather than ordinary decorative pictures; 5. The alt attribute that cannot be ignored, which is different from figcaption; 6. The figcaption is flexible and can be placed at the top or bottom of the figure as needed. Using these two tags correctly helps to build semantic and easy to understand web content.

See all articles