zoukankan      html  css  js  c++  java
  • [Web component] Using Custom Events as a web component API

    Learn how to use custom events to expose internal events from withing a web component.

       class MyWelcome extends HTMLElement {
          constructor() {
            super();
            this.attachShadow({ mode: "open" });
            this.shadowRoot.innerHTML = `
                    <h1>Welcome <span id="username">Developer</span></h1>
                    <div><input id="usernameField"></div><br/>
                    <div><button id="changeUsername">Change username</button></div>
            `;
    
            this.userName = this.shadowRoot.querySelector('#username');
            this.input = this.shadowRoot.querySelector('#usernameField');
            this.submitButton = this.shadowRoot.querySelector('#changeUsername');
    
            this.init();
          }
    
          init() {
              this.submitButton.addEventListener('click', () => {
                this.userName.innerText = this.input.value;
                this.emitExternalEvent('username-changed', this.input.value);
              });
          }
    
          emitExternalEvent(eventName, payload) {
              const customEvent = new CustomEvent(eventName, {detail: payload});
              this.dispatchEvent(customEvent);
          }
        }
    
        customElements.define('my-welcome', MyWelcome);
        const myWelcomeComponent = document.createElement('my-welcome');
        document.body.appendChild(myWelcomeComponent);
        myWelcomeComponent.addEventListener('username-changed', (event) => {
            console.log(event.detail);
        });
  • 相关阅读:
    蓝桥杯国赛--四阶幻方清晰易懂(dfs+剪枝,stl)
    蓝桥杯---九宫重排(典型bfs)
    快速排序算法细致总结!!!
    Topsis优劣解距离分析法
    golang变量的定义
    golang
    erlang的优缺点
    mongrel代码注解
    取石块 解题报告
    军队 解题报告
  • 原文地址:https://www.cnblogs.com/Answer1215/p/12463243.html
Copyright © 2011-2022 走看看