Well, React itself is no miracle.
It is encapsulated, but same can be said about template level reactive variables for example.
I think what is making React so popular is enforcing these things while in Blaze they are presented as still in work best practices - but not part of MDG tutorial or so.
For me it is no problem to make dumb templates and use that template level vars and data flow to pass it to child templates, as described in https://www.discovermeteor.com/blog/meteor-components-template-controller-pattern/
I dont need React’s - re-render all for every change approach - especially the MDG mixin implementation which is impossible to controll by user.
Blaze is nicely tracking what has changed and touch only related templates - at least it looked that way for me (iron-router school kinda shown people how to approach reactive variables and limit their re-runs ).
If it is touching something more, than I would probably try Blaze+, but for now all is working for me.
1 nice template level controller, with few autoruns waiting for subscriptions and when related subs are ready rendering dumb templates. While passing them data and controll functions from helpers. That way you can keep STATE in 1 place and pass data and functions to dumb child components.
Now with “#each item in array” you can access all template level data without parent touching hacks, what more we need ?
Yes React is nice for native Android and iOS stuff, but I dont see anything limiting us as long as we dont need native feel animations on all platforms.
If you want to learn React, you need to also learn some kind of Flux or Redux etc. when you really wanna work with Meteor, as with basic re-render all approach you will hit wall kinda fast. So than Redux, immutable and even in React world there is 100x implementations. And show me article explaining exact patterns how you need to pass Immutable to child components so you can track if component should re-render. When I last time checked you need to pass props and immutable version of them too - so keep both structures at the same time etc.
So short version - React is not 1 weekend lesson if you want to learn it on usable level with the right practices. Nor is Blaze. But both have pros and cons. And both can be used in component reusable way.