I have found it easy enough to just use json-serializable literals to represent html, e.g:
['div', {id: 'main'},
['h1', 'Some title'],
['p', 'Some text']]
I wrote a little function to turn this kind of thing into an html string (https://github.com/twfarland/don), but it could also be used as the view descriptor for some kind of view component ala React. Might work on that...