I have been learning web development for the past 2 years and I have worked with all the three most popular frontend web frameworks. Here is my experience with all of them. But before I start I would like to mention that, these are entirely my personal experience and don't choose any framework just because this post tells you that "X framework" is the best try all the three frameworks and choose what is the best for you.
A. Angular- I have made a web app where people can share quotes, like and copy quotes. So this was made by me in 2019 using the Angular version 7. You can have a look at the code at here. I find the Angular Projects a bit overwhelming to start with and I can ensure you that typescript is not the reason. The things I noticed were:
Angular comes in with a heavy boilerplate (Sometimes you won't need all that code but that will be present)
All the core things are maintained in Angular by the angular core team.
B. React- After being a little bit thrown off guard by the boilerplate code provided by Angular I tried out React. Now, react is not actually a framework it is actually a library. But from the very beginning, I was not a huge fan of the JSX concept of React. But over the time I accepted the JSX structure. However, React seemed much simpler than angular and hence I switched to react. Now, during this time I was having some issues with my computer so I don't have any react based code to show, but the website of one of the clubs of our college had some contributions from me and it was written in react. The website : http://dc.kgec.ac.in/.
Meanwhile, I had started writing posts so one of my first posts was about Redux vs Context API. These two are centralized state management system for React. So, you can tell, I was getting used to the workflow of React, but I was also introduced to Vue as well.
In this time spent with react my observations were:
It is a bit less complicated but equally powerful as Angular.
The styling of elements is a bit messed up in React. I love to write custom CSS a lot, so this is an important point for me.
The state management with the industry-standard - Redux is a bit complex to start with.
C.Vue- In November 2019, I decided to redesign my portfolio and I also wanted to introduce a blog in my portfolio. As I was using React at that moment my first point was to try Gatsby to static generate my blog. But I was a little bit startled by the things happening with GraphQL. At this very moment, I discovered a Vue based rather non-popular static site generator with in-built support of markdown based blogging. That framework is Saber.
And after two days of fiddling with it, I fell in love with Vue and Saber. Vue has everything I could have wished for:
It is not as bulky as Angular Starter Code as well as it was not as lightweight and lacking as React.
The HTML, CSS and JavaScript parts of the code are separated(though in the same file), unlike the JSX which throws a slightly modified HTML inside JavaScript file.
The state management system of Vue - Vuex follows the flux pattern(followed by Redux as well) but does the process much simpler than redux. The main reason might be it is developed and maintained by the core team of Vue.js.
Currently, I'm using both React and Vue alternatively in my workflow, but I'm a little bit biased towards Vue. The one thing I learnt through this process is that frameworks do not matter. Frameworks are just tools to make the process easier. Once you have learnt one framework it is really easy to switch to the other. I would love to hear others opinion on this topic.
Top comments (6)
Couldn't agree more about Vue as I've also played with all three and have a tendency towards it, especially as you can create apps using Native JavaScript Modules without having to worry about a huge toolchain! I dare say you can with React too, but I've not tried it, not so sure about Angular though...?
Angular.js was in that spot, but now as angular uses typescript, so you can't go with Angular without all the setup.
I do sort of feel that there's a movement away from Toolchains TBH, which is good I think, CSS has variables so there's less need for SCSS etc. Just a shame not everyone uses an evergreen browser, ah well.
I definitely agree with you wrt Redux. I am looking forward to learn vue sometime soon. Will let you know my Vue(View) then. :)
I will be trying Svelte really soon. I had a look on it when Svelte 3 was just released. I just need some time(making at least one project) before writing something about Svelte.
Vue is the one you should use to view the front-end domain