16.01.2024

Frontend ohne Framework – nativ, nicht naiv!

von Jan Müller

Graphik Frontend ohne Framework – nativ, nicht naiv!
class HelloButton extends HTMLElement {
  private name: string;
  private button: HTMLElement;

  connectedCallback(): void {
    this.name = this.getAttribute("name") ?? "";
    this.button = document.createElement("button");
    this.button.innerHTML = "Click me!";
    this.button.addEventListener("click", () => this.updateText());
    this.appendChild(this.button);
  }

  updateText(): void {
    this.button.innerHTML = `Hello ${this.name}!`;
  }
}

customElements.define("hello-button", HelloButton);
@customElement("hello-button")
class HelloButton extends LitElement {
  @property({ attribute: "name" })
  name: string;
  @state() 
  private text: string = "Click me!";
  
  render(): TemplateResult {
    return html`<button @click=${this.updateText}>${this.text}</button>`;
  }
  
  updateText(): void {
    this.text = `Hello ${this.name}!`;
  }
}

Beitrag von

Jan Mueller
Jan Müller

Jan ist Agile Software Engineer und unterstützt Teams bei der Entwicklung von Software. Er steht für agile Werte, hohe Code- und Produktqualität, Pragmatismus, und, allem voran, regelmäßiges und häufiges Liefern eines Inkrements.

Weitere Blog-Beiträge

Loading...