I've only previewed vue at this point so I can only say this about why it's "better": preference.
When I looked at vue2 I saw a lot of the same features as angular2 except the binding syntax looks better to my eyes and way of thinking.
When I look at jsx I go cross-eyed.
When I look at HTML, I want to "see" the view and construct it in my head. I don't want JavaScript mixed in it.
Note: I realize vue and angular bindings are essentially JavaScript in attributes, but they can (and should) be minimal and fade into the background IME.
If you look at React components as components, it makes a bit more sense, at least to me that the view rendering is part of the component, and not the inverse.
When I looked at vue2 I saw a lot of the same features as angular2 except the binding syntax looks better to my eyes and way of thinking.
When I look at jsx I go cross-eyed.
When I look at HTML, I want to "see" the view and construct it in my head. I don't want JavaScript mixed in it.
Note: I realize vue and angular bindings are essentially JavaScript in attributes, but they can (and should) be minimal and fade into the background IME.