This is a port of binarymuse's shouldComponentUpdate demo for React.

Webcomponents are used to implement a React like compenent life cycle, the implementation can be found in the official incremental-dom examples. This allows compenets to be used simply by tagname in JSONML like any other element. The passed shouldComponentUpdate method will decide when the component has to patch its own shadow root, instead of an explicit skip of descendants like in the plain primer6 demo.

This is an interesting and still very simple and compact approach codewise, unfortunately, outside of Chrome this will require heavy polyfilling (about 100kb) and styling of elements is tricky with webcomponents specification still to come.