JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/maquette/2.4.1/maquette.min.js"></script>

JavaScript

const h = maquette.h;

function createCounter(){
    function onButtonClick(e){
        count += 1;
    }
    var count = 0;
    return {
        render: function(){
            return h("div", { key: this }, [
                h("button", { onclick: onButtonClick }, "Increment"),            
                h("span", count)
            ]);
        }
    };
}

const comp1 = createCounter();
const comp2 = createCounter();
const comp3 = createCounter();

function render(){
  return h("body", [
    comp1.render(),
    comp2.render(),
    comp3.render()    
  ]);
}

const projector = maquette.createProjector();
projector.merge(document.body, render);