Having said that, I still like Vue for a markup-first kinda of framework. React is code-first, markup later.
I tend to favour using React for most development scenarios, however, as most are code-first - and also because there are a dozen React candidates for every Vue candidate in my experience.
About 2 years ago our new tech lead decided that we would use Vue instead. Ever since that decision I found myself walking more and more into backend development. I just felt like all the Vue code we wrote felt like I was writing 2011 AngularJS code. Not sure what people find so compelling about it.
A month ago our tech lead decided we're going back to React for everything using Next. Everyone loves it. Everything is type safe and every variable has full type hints. Props are type hinted. It's great.
We had similar discussions in a company I worked for, but most of the senior devs decided that trying to align frameworks for the sake of everyone working in the same one didn't make sense. Given our size, there were more than enough teams working in React/Vue to keep people happy, but moving everything to one or the other felt like a colossal waste of time rewriting existing applications versus executing against our business goals.
This reads the same, you went from React -> Vue -> React in the span of 2 years? Sounds like a colossal waste of the company's resources.
For example, PHP7 added null coalescing or look at languages like Java and C# that have added lambda functions in the last few years.
They're adding things that have been proven to be useful. Well, I'm not sure in this case but that's beside the point.
1. Vue has automatic dependency detection 2. Vue’ composables can be used outside of vue component 3. Do not suffer from over rendering or stale closure
And that is just hooks. Vue also has first party router(vue router) and state management (pinia). Along with awesome devtools, which allow any vue library to hook into it.
Then there’s many well thought out and useful features like portals, suspense, (async state) transitions, error boundaries, server components that vue just does not offer.
You don't need to. The options API still has 1st class support. The docs allow you to switch between composition API and options API.