Spoiler: It's not. But it takes a different approach toward ... approachability. Many emerging frameworks are following suit. Different doesn't mean better. But it does mean you might not need React. #react #vuejs #reactjs #javascript
was struggling to understand React n then turned to Vue3 never to get back again to React....Vue3 is so much intuitive and just by looking at the code flow, it is really easy to grasp in a very short time
I used React professionally for a while. Was moved to a new project that was using Vue and I was skeptical…unwilling to learn; I thought it was inferior. After one week of just simply following the documentation while building components for our project, I knew I would never turn back. It’s hard to say exactly what it was, but I like to say that React feels over-engineered compared to Vue or Svelte. Also, the teams I’ve been on had really strong C# devs, and Vue just immediately clicked for them. I think that’s powerful. Been a Vue evangelist of sorts for about two years now. Still haven’t been on a project with Vue3 or Composition API, but we have discussions about migrating in the future.
@oodevr but JSX is not "just JavaScript" until browsers can interpret it without a build step. It is as much DSL as Vue, not that it's a bad thing, it actually improves DX.
@oodev deleted his comment, I think, as I don't see it but have a reply to it. This is what they said: "IMHO react is not over engineered, the problem is JavaScript is a difficult language. All react hooks and react itself nothing but sole JavaScript. Frameworks, libraries comes and go.. JavaScript will stay. With those frameworks, you dont really code JavaScript but some another language." My response to that would be, I don't believe JavaScript is a difficult language; sure, it can be difficult to work with and full of weird quirks. I don't agree entirely that with a framework like Vue, one is coding in another language and not JavaScript...at all really. Most of the production code I've produced is definitely JavaScript, and easily readable. I think that point is moot. I respect that you probably prefer React though...that's perfectly fine :) I don't think React is over-engineered, it just feels over-engineered compared to an incredibly simple and scalable solution like Vue. I don't identify as a "Vue Developer" -- I do proselytize why it's awesome to work with, which brings me back to the point: Software Engineers of all disciplines can quickly pick up Vue and ship code. I wish the dev community would stop being frameworkers and start being engineers again.
Vue3 + comp api (with script setup) + TS + pinia .. is sooo much better than Vue2. Give it a try, its very different at first, but I would never go back
Because his opinion is inverted. He calls unnecessary complication as elegance. Compare the equivalent frontend built with react vs vue vs svelte. Talking about just the core stuff: vue and svelte is so much easier and elegant. Vue has much more support than react as it has official additional stuff included with vue framework, where as with react we have to use potentially dangerous 3rd party libraries and documentation just to create the equivalent offered by vue3.
I use Vue because Vue is always on the same current as EcmaScript standards. And I feel free with vue. I chose vue because of vite. State management is very simple in vue compared to react js. I love how the template is rendered separately. and the script functions don't lost reference links with don't force you to save your function with useCallback. I love how Vue uses js proxy for state management. I didn't see any strong proof that would make me choose to react instead of vue in future projects.
If its a new project I would definitely use Vue. Vue can also do complex projects, especially using Composition API. I think people use React because most projects where already made from React.
As someone who’s mostly done React over the years I feel like it’s a dead end. React’s way of programming is closelely couoled with VDOM and reacticity at the component level, while Vue has fine grained reactivity and will probably be able to move away from VDOM (which the consensus is that it’s not a good idea at this point). Not to mention, first class TypeScript support.
@LongJourneys same thing you could say about picking between an excavator and a spade to dig a pool. DX matters. React: - does manual dependency tracking. Shoot yourself in a foot! - makes you spawn endless arrays and functions creation on every render. Kill GC! - has no two-way binding. Praise the boliderplate! - only has imperative conditioning and loops. Who needs declarative attributes and compile-time rendering optimizations when you can enjoy irreadable callback-hell? - has untrackable data flow - utilizes ugly callack-style slots (JSX to prop) - does manual memoization, because we don't have more important things, and we can waste our time on it - lets you introduce easy infinite loops - only allows separate CSS, unless you're a fan of one of a ton CSS-in-JS solutions, that are ugly to write and deal with - uses htmlFor and className instead of for and class, because JSX/TSX are not smart enough to transpile it properly - offers boilerplate state variables - does immediate reaction to a state variable assignment, so that we could enjoy infinite loops with ease - does complete component re-rendering upon every state change, so that infinite loops could reliably become part of our lifes - has ugly workarounds for async behaviour - has ugly provide/inject with tags - has ugly stores, that are not standard anyways, but Redux is a ton of boilerplate and GC bloat, and MobX makes you wrap every component you wanna use it in - makes it easy to write a ton of components within a singlr file Vue, on the other hand: - is truly reactive. Enjoy ref, reactive, shallowRef, shallowReactive along with computed, watch, watchEffect and never worry about the dependencies, as they are tracked automagically out-of-box - uses v-model for two-way binding - keeps data flow easy with props going down and events going up - has easy to read and write slots - has declarative attributes like v-if, v-else, v-for - keeps logic, layout and styles (scoped, if you want) within the same file and makes it a breeze to use, even with bindings from the logic - uses for and class in HTML template - has easy to use and understand reactive variables, that use Proxies and make their use a breeze even for arrays (EVERYTHING is easily mutable) - has reactive variables accumulate changes within the Vue rendering tick and get applied all at once right before the next render - only re-renders component dynamic parts and only when needed, and tracks the component part's dependencies automagically - has easy async, even top-level - has easy to use and understand provide/inject - has official libraries like Pinia for store, that is a breeze to use amd write - has clear separation of components So if you mean the preference of boilerplate and the ease of shooting yourself in a foot, I'm hands down. Vue does everything React does, but better and easier
Oh, and also React makes us allocate callbacks and dependency arrays on every component render. Not to say that every useState allocates a new array under the hood. GC is not very happy about it
@@DmitriiBaranov-ib3kfin other words Vue works best in every project. It is this kind of thinking that's really annoying. Folks use different tools for different reasons.
You can write a website using one of a lot of different frameworks and technologies, but some are objectively better than the others. With all the advantages and no trade offs. With all the simplicity, scalability and performance
I do not understand this statement: "React is solving very complex problems". I mean WTF?. I know react (read all its documentation) and expert in vue. And I can say that Vue is far much approachable than react. React makes things unnecessary complex. While Vue is straight away allows you to write business logic and be done with it.
who cares, industry has adopted react so aggressively, doesn't matter what you make it's not gonna change, react will slowly steal good parts of vue, you can't do anything about it
That's bullshit. Before react there were other standards. Industry keeps shifting so discussion is important. React won't be king forever, that's for sure