mutable-element
TypeScript icon, indicating that this package has built-in type declarations

0.2.4 • Public • Published

Mutable Element

A library for create and manipulate html element with modern javascript syntax

Example

The following example shows how to display a counter that starts at zero and increments by 1 every second:

import { mount, html, text, clock } from "mutable-element"; // or @codehz/mutable-element if use jsr
mount(
  document.body,
  html`div`(
    text("counter: "),
    text("0", async function* () {
      // just use any local state
      let value = 0;
      // use a async generator
      for await (const _ of clock(1000)) {
        // yield new value
        yield ++value;
        // remove itself if not connected to dom
        if (!this.isConnected) break;
      }
    })
  )
);

The following example shows how to respond to a button event and change the text:

import { mount, html, text, on, stream } from "mutable-element"; // or @codehz/mutable-element if use jsr
const stream = new Reactor();
mount(
  document.body,
  html`div`(
    html`button`(
      "click me!",
      on("click", () => void stream.push())
    ),
    text("click count: "),
    text("0", async function* () {
      let value = 0;
      for await (const _ of stream) {
        yield ++value;
        if (!this.isConnected) break;
      }
    })
  )
);

Readme

Keywords

Package Sidebar

Install

npm i mutable-element

Weekly Downloads

2

Version

0.2.4

License

MIT

Unpacked Size

107 kB

Total Files

36

Last publish

Collaborators

  • codehz