top | item 16121398

Ask HN: Did you switch from React to Vue last year due to the licensing dilemma?

27 points| tiuPapa | 8 years ago | reply

If you did, are you considering switching back to React? How is your experience with Vue? What does Vue do better than React? What does React do better than Vue?

17 comments

order
[+] joshribakoff|8 years ago|reply
I'm switching from Vue to React because I find it really kludgy to have to call Vue.set to declare new reactive properties at runtime.

Its also a bit nicer in that React tends to follow ES standards like ES6 classes for components, instead of exporting a POJO for your component. In vue you often have to use function() instead of fat arrow syntax because of the context of "this". With react you used to have lots of .bind(this) boilerplate, but now we have shorthand property syntax. Vue also mixes props & state, where as React keeps them separate. React implements certain lifecycle methods like componentShouldUpdate() whereas Vue doesn't because the creator thinks it would complicate the API, meanwhile there's known issues like between Vue.js & HTML5 content editable due to this lack of lifecycle method.

Vue is easier to get going & much faster to develop in initially, lower learning curve, and friendlier API.

[+] AlfeG|8 years ago|reply
> I'm switching from Vue to React because I find it really kludgy to have to call Vue.set to declare new reactive properties at runtime.

Why You need to do this that often? We have a lot of moving parts in app, but just a few `Vue.set` calls.

[+] CaveTech|8 years ago|reply
Most of this is simply incorrect.

Declaring properties at runtime is an antipattern.

You never need to use function()

Props and state are absolutely not mixed. Props are inherited and immutable by default.

Content editable doesn’t fit in with the vue paradigm but you can easily abstract that section out of vuejs. If you dom is not dictated by your data, then a render function makes little sense.

[+] truetuna|8 years ago|reply
Could you expand a bit on shorthand property syntax or provide a link to somewhere I could read more? I'm still doing a lot of .bind(this) in many places and I'm looking for an alternative.
[+] jackaroe78|8 years ago|reply
Yes, we had been planning to switch from Angular 1.x to React but our legal team determined it was too risky. The licensing issue was cleared up (I think) right after that decision was made
[+] throwaway2016a|8 years ago|reply
That is really a shame. React is hugely better than Angular 1.x in just about every way in my opinion.

When we switched productivity went through the roof and the site rendered faster.

That's not actually why I switched though. I switched because of the whole mess with Angular 2.x planned lacked of backwards compatibility. It was the nail in the coffin for Angular for me.

[+] CharlesMerriam2|8 years ago|reply
We had to suspend React development. I think one team decided to switch from browser based to a native app, the other team is back on React.
[+] electric_sheep|8 years ago|reply
Nope, our legal dept gave us the OK on the original license.