The journey from giving up React.js in favor of Vue.js
medium.com
medium.com
It seems like the _main_ problem they were having was that they were trying to graft React onto an environment based on jQuery and then realized that it made things complicated. That's not a knock against React, that's just shooting yourself in the foot and blaming the gun.
Welcome to the world of web development. Not everyone has the luxury of throwing out the last 11+ years of jQuery knowledge, plugins, tooling, etc. and building everything from scratch in React. Some people—gasp!—might have legacy codebases that they want to slowly introduce a new front-end framework into. Vue is a much better solution in both cases.
> Simple things were made harder to develop. React was created to make DOM changes fast, really fast, so you will have to use React functions to make use of this, some of which you will not be familiar with (because React has a different architectural style)
It's utterly meaningless. What it really sounds like is they didn't understand React, didn't research what using React with jQuery would entail (given by the fact that they couldn't make it work), and didn't bother to learn the (relatively small) React API. React is not hard.
Then this gem:
> React is great, but only if you want to develop a simple application where the UI should not be consistent across different technologies
Is _completely_ incorrect.. React is used at enterprise scale by many companies to develop all sorts of complex apps, and surely many of them have or had existing systems coexisting side-by-side.
No way. Angular made me leave jQuery forever. React made it even simpler to create components. People should still learn jQuery and its internals because of its simplistic (api) interface and internal code.
I like Vue too, because its so easy to develop a lot in a few hours. But as code grows and complexity grows - Vue loses its simplicity and I end up migrating to React.
EDIT: Reading the article it feels like they lack expertise in both JS and CSS (and Thinking in React way pushed them over the edge)
const MyList = props => (
<ul>
{props.list.map((item, index) => <li key={index}>{item}</li>)}
</ul>
);
...
<MyList list={[ 'item1', 'item2', 'item3' ]} /> this.state = {
value: this.props.value || '',
}So, that snippet is actually valid - presumably they want to initialize the internal state value based on the corresponding prop, and use an empty string if it doesn't exist.
This is wrong; Redux is not a framework, it's just a technique for managing state.
It wasn't written at all by the "React guys".
It also implies Redux englobes React which it most certainly doesn't - they're just 2 independent libraries.
I haven't used Vue yet, but I'm curious how nice it is to develop with after the codebase has grown significantly - I remember Angular 1.x had that same "magic" that made it easy to appreciate and pick up, but ended up being a huge headache after writing production code with it for over a year.
And really, there's a reason why React isn't designed to work well with jQuery. That's one of its biggest strengths - writing code declaratively and letting it figure out what the correct state/DOM should be. I can't imagine trying to write a complex SPA and modifying the DOM directly - that was the reason Facebook came up with React to begin with.
The React docs recently added a section on integrating with non-React code [0], and I've got links to several more articles discussing integration and interop at [1].
[0] https://facebook.github.io/react/docs/integrating-with-other...
[1] https://github.com/markerikson/react-redux-links/blob/master...
Is it Thursday already ?
You can just use that if you'd like.
> turned into this whole cultural movement thing
Isn't that a pretty much foregone conclusion given a large enough adoption and ecosystem? After all, ColdFusion has less of a cultural influence on its users than Rails does.
Isn't the ability to just include a js file going away in version 15? react_on_rails already pulls in v8 when all I wanted was for the browser to load it, and it requires I stick my components in a weird place. With Vue, components can live with the rest of the view code and I don't have to write JSX (which I hate), or React's verbose alternative. Plus, whenever I look up information it alsways seems to be geared to node.js users.
A long time ago I wrote a DOM templating engine in like 10 lines of ES5, and what I really wanted was a faster and more complete version of that. Vue fits in much more nicely.