So lately I have been spending the better half of the past month learning how to use Vue js. Now my core reasoning behind this is that I heard the learning curve was a lot lower and would make it easier to understand other similar frameworks such as react.
Now in the past, I have used angular I swapped to vue and have been enjoying the structure of components, etc. Now my question is for you all that have used other frameworks such as angular react etc. How do you choose which tool is best for what. Or do you just use what you feel is easier to use for you?
Personally, on my own projects, I try to go with the path of least resistance and not choose the shiniest thing in the toolbox. While something may not have 1k features to it if it gets the job done and works well why change it.
So what are your thoughts I'm going to assume 99% of responses are going to react, but really curious as to the why?
Top comments (15)
Hi Alex.
First of all, React is a UI library not a framework! Apart from that, I worked with React for almost 1 year and half and I have been working with Vue for 2 years. In my personal opinion the best one is Vue for two main reasons:
React, being a library, is very light and more complex to start with: JSX could be not so easy to understand for a beginner. Moreover, React doesn't have an official state management tool and an official router (sure you can use Redux and React Router which aren't officially supported by the React team).
On the other side of the coin there's Angular which is a super-heavy framework. Keep in mind that, to use Angular, you must know TypeScript.
In the middle there is Vue which is perfect for a beginner. Having three separated blocks (
<template>
,<script>
and<style>
) allow to write a better scoped code and it's surely the best option for a rookie. Furthermore I like to define it "an extendible micro-framework" because if you only need to write reactive UIs you just have to use Vue, but if you want to craft a more complex application (maybe a SPA) you can easily extend Vue by installing Vuex for the state management and Vue Router for the routing. Both Vuex and Vue Router are officially supported by the core Vue team and I think it's a super cool thing, because it means that the ecosystem is perfectly integrated.So this is my personal point of view about Vue, React and Angular.
Merry Christmas and happy new year! 🎅🏼
Thanks for the correction on that! I keep getting the term framework and library mixed up these days with the million different tools. But I appreciate the insight on everything. I have to agree with you that so far being able to split everything up with template scrips and style. And then being able to use vuex and routers ect. Makes it soo much easier to structure your project. At least in my own experience.
It will be interesting however at some point to mess around with angular again now that it adopted typescript or react ect.
Professionally, I work more with React than with Angular or Vue, but my opinion could not be more opposite: I consider React a fad that has more to do with who invented it than whether or not it's a good choice for a project. If I could ignore factors like resources (e.g. how easy it is to find React devs), I would never prefer it (with the exception of React native which ultimately delivers a solid and realiable outcome).
Having started the declarative approach with the first AngularJS, Vue has become the best option in my mind.
I think it is disingenuous to call React a "fad". It's been around since 2013, is widely used, and continues its steady pace of development. That's not a fad; that's a long-standing open source project that is useful for a myriad of development use cases.
You can prefer one library or framework over another but leave the subjective opinions out of it.
Let me add how I evaluate libraries and frameworks: Over time, they all come and go as the technology progresses. Some leave their mark permanently due to the innovation they brought to the dev world. Everything else fills nieche that operates in the contemporary field of innovation. Depending on how popular these solutions are, they have a particular following. You can call that a fad, a hype, a trend - it doesn't matter. The point was that React has brought no innovation to JS and will therefore not influence the ecosystem in the long run.
As for your comment:
I don't know how an option could not be subjective. In my dictionary opinions are subjective per definition. OP was specifically asking for opinions. You disagree on the content of my opinion and gave me your counter argument indicating that you evaluate based on timeframe and use cases. Fair enough, but no reason to react as if I insulted you somehow. I would never call your opinion disingenuous.
Fair. And reading this back now... yikes.... Sorry about that. I was going through a lot and still am. Really sorry for the snark.
Vue because your learning it. Then just use whatever, conceptually they are all quite similar... Apart from Svelte which is actually a language and compiler... But don't use it yet until it's popular in the place you work.
I'd recommend getting really good at one (any one) and then adopt others as you get opportunity. For example, if your employer uses Vue, get really good with Vue. Then add React or Angular when you get time or a chance to join a project using those. I like React because it's easy to get going with. I like Angular because it feels more rigorous. It is harder to learn, but less loosey goosey. It seems a bit more opinionated in how you handle styling, but then it's also more predictable in how it will behave. I prefer it.
Personally I choose the framework according to the requirements and the direction I plan to go to. It depends on which UI library I plan to use, what kind of architecture I want to have (e.g. micro frontend), which framework works the best with some complicated components I plan to use (e.g. AG Grid)... Also if project is big, I consider which framework will be supported in next couple of years. Besides that, it is important which framework is familiar to my colleagues. In general it is always a difficult decision.
In 2016 I started a new project. Prior to it I'd worked on several Angularjs projects, used Backbone, several jQuery and built an evaluation prototype with Ember. Coming from this background I realized picking these involved making a Catholic-wedding decision for the project. For some things that makes sense. For others it doesn't. I evaluated what was happening with native support and at the time the 2nd iteration, v1 (from v0) of Web Components was being implemented in Chrome, and some parts in Safari. Given the slow rate of change in browsers it seemed a safer bet than any available framework. So I created a product using no framework and relying entirely on writing everything from scratch. Funny thing is it's not much different than using a framework or React, except the product is much much faster easier to debug. Since then, in 2019, LitElement and lit-html came out which make managing state and templates a little easier, definitely easier than React. So it really depends on what you want to do but I'm betting native Web Components continue to run circles around everything else--they did a few years ago and still do from all I know. Browser APIs are more performant, consistent and feature rich than every before--this is both a trend and current status. For everything new I'm just telling people unless you have a legacy client requirement (and they pay massive $ for it) it makes no sense to support a non-evergreen browser, which frees us the legacy and cruft of most of what is popular. If you really love maintaining an elaborate build process, irrelevant translations (JSX, SASS) by all means keep your favorite baggage. It just doesn't serve your customers or development experience.
Hi there,
You can check the following articles and guide for a detailed overview of frameworks, libraries, and roadmap to become a front end developer.
How to become a front end developer
Most Popular CSS Frameworks comparision
Angular UI Component Libraries
ReactJS UI Frameworks
Learn whatever is most demanded and offers a wide range of job selection. Frameworks are just tools to get things done, and there are various, so I wouldn't rely on one.
Hey Alex, I suggest you also have a look at svelte.dev.
If you're interested in a comparison between Svelte and React, I wrote a post about it at mikenikles.com/blog/why-i-moved-fr...
Try RiotJS - you won't regret it!