Virtual DOM is ...
The DOM was often used to store state: this just isn't an efficient approach.
The DOM is fast, but page refreshes or reflows may be slow.
If a DOM manipulation is poorly conceived, this may lead to performace problems: this idea gave birth to the myth that the DOM is slow.
The Virtual DOM is an improvement because it allows to consolidate multiple changes into a single DOM operation.
With the 2 way bindings approach, changes could trigger many computations where each would trigger re-renders. React bundles all such operations into a single rerender.
lit-html lets you write declarative UI without diffing. It has an almost 1-to-1 correspondence with JSX, but by utilizing the static/dynamic split it doesn't have to do VDOM diffs.