picodom

by nju33

HTML

<script src="https://unpkg.com/picodom"></script>

Babel + JSX

/** @jsx h */
const {h, patch} = picodom;
let element = null;
let oldNode = null;

function render(newNode) {
  element = patch(
    document.body,
    element,
    oldNode,
    newNode
  );
  oldNode = newNode;
}

function view(state) {
  return (
    <div>
      <h1>{state}</h1>
      <input
        oninput={e => render(view(e.target.value))}
        value={state}
        type="text"
      />
    </div>
  )
}

render(view("Hello Picodom!"))