One thing I like about having React DevTools installed is you can easily see which sites use React because the little icon lights up. It's a surprising amount these days; React is getting so popular.
From my PoV, React is already past its maximum in the hype cycle, and I see customers choosing vue.js most of the time. I have no stake in this (haven't worked with vue.js, nor with new React with hooks etc.), but presumably vue.js is chosen for React-like MVw without the jsx/babel+webpack build step drama, as a simple js lib.
Ironically, my understanding is that it’s Vue that requires a compiler for even basic component support. If you don’t use webpack or similar tools with Vue, as far as I know, you can’t declare an idiomatic reusable Vue component.
With React, whether you use Babel/JSX/Webpack or not, components are always available. They’re the whole point.
I think it’s fair to say that Vue is initially more familiar to and easier to get started with for folks who are more comfortable with HTML. React is more JS-centric. Even though in the end they render the same DOM elements.
Hm, then it's indeed a misunderstanding on my side. I definitely need to take a look into vue, but I thought people were choosing it over React because they didn't like JSX but would prefer straight HTML (though again, I don't know vue and how it would be possible for vue to render components based on just HTML syntax).
Vue offers a more gradual learning curve coming from HTML. Because in the beginning, you don't write components in JS at all. Instead, you can use Vue "directives" like `v-if` right inside your HTML. Later, when you're ready for components, you have to add a compiler.
React takes a different approach. It doesn't "pretend" to be HTML by extending it with custom directives. Instead, it forces you to start the journey in JS land. That can be frustrating at first if you're unfamiliar with JS. But the gap between "simple" and "complex" is smaller: you learn the idea of components once, and can apply it with or without a toolchain.
That is the exact reason I prefer React - Vue feels like you are mixing HTML and code when you start adding in the directives. JSX feels quite natural to me, in particular because it provides an easy mechanism to code with a clean break between the app logic vs. rendering.
I know at the end of the day, they both still come out as HTML and JS in the browser, but React just feels cleaner. At least to me.
most tutorials do "excalate quickly" and introduce the vue cli within the first few minutes, which is probably what most professional teams use to manage today's frontend build step (drama).