picodom

HTML

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

Babel + JSX

/** @jsx h */
const {h, patch} = picodom;
let node

function render(view, state) {
  patch(document.body, node, (node = view(state)))
}

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

render(view, "Hello!")