@foxdonut I found the problem, I was using "preventDefault()" which was apparently making react-dom believe that the checkbox was checked but it remained displayed as unchecked So all it took was to remove that line
So, I'll probably stand on my position that ES6 + a simple v-dom like algorithm like hash-dom is better, I understand you'll disagree, but I just don't see the value of dealing with all these idiosyncracies that a library like React introduces. By comparison, Angular has no "magic" tricks, even though I don't like template languages, I ran into more edge cases in one hour of React programming than 12 months of Angular. Angular2 templates call handlers and update on prop changes, no exception. Handlers no nothing about the HTML level (such as "preventDefault").
@jdubray interesting, thanks for the follow up. I understand that you ran into some issues, but I'd argue that NOT putting preventDefault for it to work is hardly an idiosyncracy. I would consider it more of an "issue" if you Had to put it for it to work.
Each dev prefers the tools that makes them most productive.
To me Angular has Wayyyyy more magic tricks than React!
@foxdonut it's basically SkateJS. I don't have an example at hand, although by the end of today/somehwere this week I should have some code on github.
What it basically comes down to is a 100-150 lines of code 'BaseComponent' that interfaces to a render function and properties, and whenever a property on your element changes it calls the render function on the element's root.
So you provide the render function with whichever vdom library you want.
In my case I have handlebars templates that I compile to an Incremental Dom render function.
The base component just exists to get rid of the boilerplate that web components come with.
Which makes them very flexible as low-level software components, but gets in the way a bit if you just want to have functional components.
It is extremely performant on Chrome where web components are natively supported.