Why did you pick Vue than React?
-
There is something that I think people tend to take falsely, when they see Vue for the first time. They think, “Ha, that is a toy. It’s not going to work for more powerful applications.” What they are misconstruing is Vue’s affinity to attract newcomers to it as being “too simple to be used for something complex”. It’s because it’s API, it’s way of doing things, is much more beginner friendly. This beginner friendliness starts with its CLI being a first class citizen, to the UMD version, for implementing it in existing projects, to it’s concepts, which make sense at any level of experience (except for the concept of slots maybe
, which once learned, is amazing).
People say, Vue’s API and having to learn it up front is more complex than React’s. I say, in the beginning maybe. However, Vue’s bit of opinionation in this regard means a form of constraint and constraints are good in programming, as long as what can be done with it as a tool is flexible. Over time, these constraints mean code bases are similar and easier to reason about and require less “best practices”. Less best practices means better more stable code i.e. better quality and for sure, a lot less cognitive load over time.
I don’t know if you’ve noticed, but in Twitterdom, Evan You started a bit of a flurry, when he noted how he likes React hooks. Well, if you went to the React side of the ball park to find out why they came to life, you will find this article from Dan Abramov:
https://reactjs.org/blog/2016/07/13/mixins-considered-harmful.html
There is also this video, where hooks was presented as the solution to “what sucks in React” (remember, this is Facebook telling the world what sucks about React):
https://www.youtube.com/watch?v=V-QO-KO90iQ&feature=youtu.be&t=284
-
Classes ( I still get a good chuckle thinking about this design decision being a mistake)
-
Wrapper hell / Logic Sharing
-
Giant Components
Those are some major problems. I’ve not seen these same issues in all of my time watching and listening to the Vue community. Maybe nobody has gotten to the size of Facebook yet, but still, I can’t imagine them being a Vue problem.
Yes, hooks have clear advantages over mixins, but I would say, because Vue didn’t go down the road of inheritance, and instead followed the mantra, “prefer composition over inheritance”, it could avoid most of those problems for the most part. And I truly believe, if your components follow SRP, issues with mixins are limited too.
Of course, React is now going back to functional components and with hooks, it solves it’s ugly problems. So, it is advancing. That’s a good thing. And if you watched that video, React is starting to look more and more like Vue. Hahaha!
At any rate. Both Vue and React are powerful reactive UI libraries. I still think Vue has advantages over React, because it does it’s job smartly, in a way that is simple, yet powerful. That is the ultimate goal in programming such a tool. React, to me, is less simple and maybe too powerful and that “too powerful” can be understood as, allows for too much crap. Which, as you can see, even Facebook found out about the hard way.
Scott
-
-
Could be speculation on my part, but I believe Evan You designed Vue, way after when AG and React were hitting the walls, so he learned from others mistake what not to do and how to do it right. Although React maybe in version 16, But when vue took off, it was when React had spun many versions to get things right, just like AG.
I had zero experience with any SPA framework. I studied all 3, but my brain was always happy with Vue. I never liked AG and React. It’s hard to become creative in something you don’t like. But this is all my personal feelings. Monday I may too cook up something to tell my View of the Vue.
-
Yup. Your brain and my brain must be alike.
Scott
-
Then you’re in trouble…
-
You might also be interested that Vue now has more Github stars than React: https://github.com/search?utf8=✓&q=repo%3Avuejs%2Fvue+repo%3Afacebook%2Freact+repo%3Aangular%2Fangular&type=Repositories&ref=advsearch&l=&l=
-
@hawkeye64 said in Why did you pick Vue than React?:
You might also be interested that Vue now has more Github stars than React: https://github.com/search?utf8=✓&q=repo%3Avuejs%2Fvue+repo%3Afacebook%2Freact+repo%3Aangular%2Fangular&type=Repositories&ref=advsearch&l=&l=
really nice to see that i’m in good hands with vue, in such short time it has caught up with other popular frontend framework which is amazing when react and ag are owned by gigantic companies.
-
Thanks man. Very useful ammunition.
-
I always hated bloat.
I didn’t like the fact that you had to compile javascript or typescript, with React and Angular.
I find that frontend development is waaaaay to complicated…I read an article somewhere that said :
Start with VueJS because it’s the easiest to learn.
Then Angular, because it has tons of stuff similar to Vue.
Then, if you want to be a rockstar, go with React.I started vue using Umd… because before I found Quasar, I HATED web pack.
It was NEVER working… I don’t want to spend 2 weeks learning just to configure a tool!!
Python and dotnet doesn’t get in the way like web pack does!!What I really liked was the easy tutorial / video on the vue website.
Then, I found Quasar… which meant I could build Electron and web application without learning a lot about web pack (just the bare minimum)… and without learning much about frontend. (I’m more of a backend guy)
Quasar just… works… and is beautiful!
Also, writing cross-platform apps with the same codebase is awesome.
That’s why I back this project.The only reason I’d go with angular or react is if you have a huge developer team with a huge budget doing a huge project.
But for everyone else, go with vue. (small and medium projects) -
Thanks for the nice words @pg !!! - and with Vue 3.0. The argument about TypeScript and large teams will also be part of Vue’s (and Quasar’s) sales pitch.
In fact, currently an app extension for Quasar is being worked on, so devs can add TypeScript support. But, until the cores of Vue and Quasar are built with TypeScript, the app extension is temporary help.
Scott
-
I’m not a professional programmer, I wear lots of hats. I’ll spend a few weeks or months making a site as a tool, then get pulled onto something else for a long time, then be asked to come back and make a new site or add something.
I got a site working in React first. And an app with React Native. In both cases, coming back to the code cold was really hard for me - I couldn’t remember how anything worked, had to re-watch Udemy courses and retrace my steps.
Vue has been a lot better for coming back cold, it just seems easier to reason about without restarting the learning curve.
Recently I moved from Vue + Bootstrap to Quasar. Couldn’t be happier! Quasar is a really great platform for getting tools made quickly. Solving our offline issues with PWA mode and IndexedDB was surprisingly easy. -
I knew I needed to learn some new front-end package system and saw mention of some comparison between Angular and React (one backed by Google and one by Facebook) and thought I’d probably need to learn on of those. Bought a Udemy course for each to start learning them, but quickly got discouraged …
I was also learning Laravel at that time, and came across Vue via Laravel … and was instantly attracted to it. It just seemed so much more simple and elegant compared to the other two. A template section, a style section, and a script section … just seemed so logical … my brain could easily understand that!
After I’d learned a bit more about Vue and became comfortable creating my own components … I decided that I needed a comprehensive library of components from a single vendor, so that I had consistency among the components. Looked at several frameworks, and had decided to go for Vuetify.
Had pretty much committed myself to that decision, about a month or so ago, when I accidentally learned of Quasar from a chance comment over on Laracasts.
I had a few minutes to spare at the time, and on a whim decided to look and see what it was as I had never previously heard about it … found the massive list of Quasar components … and fell in love!
-
In my case, honestly, it was about Laravel, I embraced Vue because I use Laravel and it comes default with it. After using it a while I fell in love with Vue, it makes so much sense to me, and it is really a joy to work with it.
After using it a while, I discovered Quasar, being able to do desktop, Android, iOS, PWA’s, and web apps from single codebase it just blew my mind. So I went all in with Quasar, now Quasar handles all the frontend as an PWA SPA and Laravel handles the backend as an API.
Also in my opinion, Quasar has the most complete set of components, the components are really well designed, and as a framework it’s very superior to the React Frameworks I have checked, it totally blows Material-UI, the most popular Material Design framework of React.
It all comes down to productivity, with Vue and Quasar, I’m much more productive than I would be with React.
Also Vue has been gaining traction, now even Apple uses it, check https://developer.apple.com/tutorials/swiftui.
Also I trust Razvan and Evan You way more than I trust Facebook.
-
The documentation is huge for me but the CLI had me sold. I had to start learning front-end stuff as a necessity for work and originally I never wanted anything to do with javascript. I ended up on the AngularJS path at first, then after a year did some tutorials for React, then Vue, and once I got “into” Vue it just clicked. Suddenly my projects didn’t just work, they were beautiful and clean, which goes along way when you’re switching back and forth between JS and another language (Python for me) all day. Then I found Quasar which was a game changer, again not just because of the component library, but because of the CLI and the docs. The docs, with the examples and explanations really are my lifeline; being self-taught, I doubt I could get started without them.
-
I like to use vue-builder-webpack-plugin and separate my css, template and script code into different files. Not possible with React where everything is mixed in JSX.
-
This post is deleted! -
This post is deleted!