Brendan asked me this fantastic question.
I'm sure you've wondered this at some point too.
How do you stay so committed to the underdog framework when React is "so hot right now"?
If React is so much more popular than Vue, wouldn't it be better to just stick with that?
There are 3 specific things here I'd like to cover:
- Growth of the framework itself (innovation)
- Career opportunities
- Ease of learning/getting better
Maybe you'll agree with my thoughts on this, maybe not.
For a long time now the React team has been bringing incredible innovations to front end frameworks.
They popularized JSX, the Flux architecture (which Redux and Vuex are based on), made huge strides in virtual DOM performance, and more recently they've been working on asynchronous rendering, suspense, and of course hooks.
But Evan You and the team behind Vue haven't been slacking off.
Vue 3, which should be available in only a few short months, incorporates all of React's recent innovations.
And then some.
With Svelte some have questioned whether virtal DOMs are actually worth it. But with the new compiler in Vue 3 we get code that is both smaller and faster.
So I wouldn't worry about Vue being a poor technical choice compared to React.
But is it easier to get a job as a React developer?
I'm not so sure.
Yes, React is a more popular framework, so there are more companies and more job openings with React than with Vue.
But there are 2 reasons why I don't think this is necessarily the case.
First, there are more React jobs, but there are also more React devs.
If there are 5x as many job openings, but 5x as many developers applying, it's just as competitive.
Second, software development skills are highly transferable, especially between modern front end frameworks.
If you spend a year getting extremely good with Vue, most of that experience will translate into React.
And any good company recognizes this.
At my workplace we don't hire "React" or "Vue" developers. We hire great devs, and after a few months they're up to speed on our tech stack, no matter their background.
If anything, I would guess that because Vue is the underdog, there's a huge need for more seasoned developers who can wield it extremely well.
So let's just get this out of the way.
I'm pretty biased on this one, since a lot of my time is spent teaching and educating others on Vue.
But the fact remains that there isn't nearly as much learning material for Vue as there is for React.
My main argument here is that Vue doesn't need as much learning material.
For starters, the documentation is incredible.
Many find that it's all they need to be highly productive with the framework.
The other big difference between React and Vue is that Vue is very opinionated, whereas React lets you decide how you want to do things.
This means that the React ecosystem has 20 ways of doing state management, while Vue just has Vuex.
You can write CSS in 4 (or 9?) different ways with React.
In Vue you just write it in the CSS block.
I don't think one approach is better than the other — just two different styles.
The Vue ecosystem ends up being simpler, but with less choice.
But becuase of this simplicity there is less to write about.
Bubbles and Bias
One last thing I wanted to mention.
If you've been in the React world for a long time and you're just coming over to Vue, chances are your perceptions are a little off.
You're likely exposed to mostly React things, and not as many Vue things.
There's a chance that you haven't gotten to see just how amazing the Vue community really is.