DEV Community

Front end frameworks which one to use?

Alex Gwartney on December 22, 2020

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 ...
Collapse
 
sanfra1407 profile image
Giuseppe • Edited

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:

  • It's easier;
  • It can be extended with official software managed by the official team (Vuex and Vue Router)

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! šŸŽ…šŸ¼

Collapse
 
alexgwartney profile image
Alex Gwartney

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.

Collapse
 
sroehrl profile image
neoan

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.

Collapse
 
tifflabs profile image
tiff

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.

Collapse
 
sroehrl profile image
neoan

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.

Thread Thread
 
tifflabs profile image
tiff

Fair. And reading this back now... yikes.... Sorry about that. I was going through a lot and still am. Really sorry for the snark.

Collapse
 
adam_cyclones profile image
Adam Crockett šŸŒ€

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.

Collapse
 
michaelbutak profile image
Michael Butak

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.

Collapse
 
slaven3kopic profile image
Slaven Kopic

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.

Collapse
 
jimmont profile image
Jim Montgomery • Edited

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.

Collapse
 
theme_selection profile image
ThemeSelection • Edited

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.

  1. How to become a front end developer

  2. Most Popular CSS Frameworks comparision

  3. Angular UI Component Libraries

  4. ReactJS UI Frameworks

Collapse
 
khangnd profile image
Khang

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.

Collapse
 
mikenikles profile image
Mike

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...

Collapse
 
jonrandy profile image
Jon Randy šŸŽ–ļø

Try RiotJS - you won't regret it!

Collapse
 
mzaini30 profile image
Zen

I using Svelte for my projects