DEV Community

loading...
Cover image for Should I learn Angular or React?

Should I learn Angular or React?

abdurrkhalid333 profile image Abdur Rehman Khalid ・3 min read

The ReactJS framework has received a huge amount of interest in developers from the starting of the 2019 till now. It is a very common question that arises in the minds of JavaScript developers to decide between Angular, React or VueJS. I am writing this article hoping that this article will help the new learners or JavaScript Developers to decided between which Framework to learn by determining the various factors.

1. Knowledge of JavaScript or TypeScript

Good with JavaScript
If you are a pure JavaScript developer and has a strong grip on the Basic JavaScript concepts such as Coercion, Type Checking, and Destructing etc. Then it is a good option for you to learn and keep moving forward with ReactJS. The ReactJS would seem a little bit of overwhelming at first but at the end you will feel more confident and easy in it and you will fall in love working with ReactJS due to its speed and simplicity.
Good with TypeScript
If you are someone who has worked a little bit of TypeScript, then it will be better for you to start learning Angular because Angular is based on the TypeScript and various annotations of the TypeScript. It will force you to implement the object oriented programming concepts as well. It will be better if you have some experience of working with Interfaces and classes.
JavaScript vs TypeScript

2. Scale of the Next Project

For Small to Medium Scale Projects
If you are working on a project which is not large in size and the maintainability of the project is not that difficult then it a good option to select the ReactJS framework. Because this will make the development easy and effective. This will also make the maintaining the project very easy as well. The cost of building project will be dropped to a great extent as well.
For Medium to Large Scale Projects
If you are going to build a project that will have a lot of modules, then Angular will be the better choice as it will allow the maintaining the project very easy. The Angular code will be much easy to understand and easy to edit as well. The Angular is a bit slower than the ReactJS, so keep this thing in mind as well.

3. Beginner's Friendly

ReactJS
Due to usage of very fundamental concepts of the JavaScript the ReactJS is very beginners friendly but with the increase in the size of the project, the code can become a bit difficult for beginners to understand and maintain.
Angular
The basic concepts of Angular are very beginners friendly, the concepts like data-binding, routing are very easy to understand as well. But some concepts like custom events creation and communication between different components can become quite difficult to understand at the first try.

4. Installing and Using the Third Party Libraries

ReactJS
In ReatJS, you have to install different kind of third party JavaScript libraries to complete your work. For Example the ReactJS does not allow the built-in form validation or routing you have to install the individual libraries for such work. So due to this reason the maintenance of ReactJS projects is very difficult because after some time the old libraries can become redundant and you have to work with new libraries.
Angular
As Angular is a complete framework so you do not have to install the third party libraries to do the very basic works such as form handling and routing. All these kind of thing are already installed in the Angular so you only have to run a single command to get these libraries installed into the project.

5. Compilation Time

ReactJS
The ReacJS is a library which works on the concept of the virtual DOM, so when there is a change in the virtual DOM the actual DOM is changed according to that change. So, the detection of this change is very rapid which makes the change detection in ReactJS very fast and it becomes favourite thing for the developers.
Angular
The Angular is a Template driven framework which means that whenever a change occurs in any Angular file, then the whole website will be reload to make that change visible. This thing is very frustrating thing about Angular and many developers dislike this thing and it is a great challenge for Google developers who are maintaining the Angular Project.

Final Words
It is not absolute that you should learn React or Angular or any other framework, all depends upon your mindset and goals you are working on, if you are looking forward to work with Bid and Enterprise level projects then Angular is good option. But if you are looking forward to work on Startup projects then React will be a great option for you. Stay Motivated and Keep on Learning new thing, because life never stops teaching.

Discussion (27)

pic
Editor guide
Collapse
jbermanwebguru profile image
John Berman • Edited

Please don't call modern Angular (2+) AngularJS. That's the name for Angular 1.x.

Also, Angular does not re-render the entire page as you described; there is advanced, configurable change detection strategies that are used to only render what is necessary.

You also might want to touch on opinionative vs non-opinionative, who develops and supports it (Google/Facebook), how often new versions are being released, which is more popular, what big companies are using, and which has a better support community.

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Hmmmm, It is a general talk and if you have the enough knowledge then you also know that the early version of Angular has been dissipated so when a person will start learning he will star learning from the Angular version 11, which is the latest. AngularJS was a default terminology, if you know what a default terminology means.

Collapse
jbermanwebguru profile image
John Berman

From the official Angular site:

angular.io/guide/ajs-quick-reference

"Angular is the name for the Angular of today and tomorrow. AngularJS is the name for all v1.x versions of Angular."

Collapse
tripol profile image
Ekanem

"AngularJS was a default terminology, if you know what a default terminology means."

That line was totally unnecessary but thanks for the article

Collapse
timsar2 profile image
timsar2

I just stop reading when you call it AngularJs, It means you dont have enough knowledge about angular to compare it to another framework.

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Hmmmm, It is a general talk and if you have the enough knowledge then you also know that the early version of Angular has been dissipated so when a person will start learning he will star learning from the Angular version 11, which is the latest. AngularJS was a default terminology, if you know what a default terminology means.

Collapse
timsar2 profile image
timsar2

Thank you mate for trying to help other
🌹

Thread Thread
abdurrkhalid333 profile image
Collapse
alexsherekin profile image
Oleksandr Sherekin

Please, stop using the name AngularJS to not confuse people who are new in the Angular world. AngularJS is old and almost dead.

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Hmmmm, It is a general talk and if you have the enough knowledge then you also know that the early version of Angular has been dissipated so when a person will start learning he will star learning from the Angular version 11, which is the latest. AngularJS was a default terminology, if you know what a default terminology means.

Collapse
raknjarasoa profile image
Njarasoa Rakotozafy

Angular is the name for the Angular of today and tomorrow. AngularJS is the name for all v1.x versions of Angular.
All AngularJs should be just Angular in yout context

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Hmmmm, It is a general talk and if you have the enough knowledge then you also know that the early version of Angular has been dissipated so when a person will start learning he will star learning from the Angular version 11, which is the latest. AngularJS was a default terminology, if you know what a default terminology means.

Collapse
jbartusiak profile image
Jakub Bartusiak

Do not learn angularjs. Learn angular. There's a difference. A large one. Look it up.
And to the author - poor reasearch and advice.

Collapse
codeposse profile image
T.Hunold

I have managed React teams for the last three years but given the choice it is Angular all the way. React is move fast break things and Angular projects are more long view. If you like safe long terms and stable corporate (boring to some) employment, choose Angular. If you want to interview for new gigs every six months from burn out or short contract gigs, go React.
No matter what you choose, remember that you are the apex predator of front end, don't take cheap gigs, know your value

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Excellent way of Explaining a very good point and which is if you are looking for a stable job or work then Angular otherwise React is the best for Job change and other working.

Collapse
jeremiergz profile image
Jeremie Rodriguez

I'm so sick of those articles, always the same stuff, React vs Angular, Angular vs Vue, React vs Vue, Something vs Something... Sorry man but déjà vu, a million times.
How can you state that React is not adequate for large projects? Do you realize how many huge websites are made using React? Like, websites you use every day?
Those articles are confusing to new developers.

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

It is very important to know that the Frameworks by 2021 are dead, the most important to know here is to keep in mind the perfect user experience and what user want, it is not a random article to choose which framework to work with rather than what to learn, reread the title if you have any other confusion.

Collapse
jeremiergz profile image
Jeremie Rodriguez

"Frameworks by 2021 are dead", but here you go writing an article about choosing one? I guess I'm not the only one confused.

Thread Thread
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

It is related to learning, once you learn a single framework, then you can learn others in a easy way.

Collapse
octanec8h18 profile image
octaneC8H18

Frameworks come and go.. They are just tools you use to get things done easily, efficiently (and goes on...). If you have good foundation of programming basics and concepts and if you have mastered a language then learning the framework is just a matter of going through the docs. My advice to beginners, stop worrying about frameworks, libs, first learn the concepts, basics and the language (Even the language is a tool.. you can learn one if you have mastered programing concepts first.) you want to use, based on the application you want to use it on. Please excuse my bad English :)

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Exactly, you have explained a very important point which is getting to know the basic and then you will be able to understand each and every framework. Once you will get to know the basics then it everything will become easy to understand and work as well. And do not worry I have same level of grammar as yours.

Collapse
csaltos profile image
Carlos Saltos

Interesting evaluation ... thanks for sharing

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Thank you and keep on learning :)

Collapse
dllundin profile image
Dan

Nice article. Perfect technical level for elementary school kids. Same language and grammar too 🤣

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Thank you and I am working on it.

Collapse
filippomangione profile image
Filippo Mangione

All good points! I think scalability is more related with project structure and abstractions. In that sense a more opinionated framework like Angular could be more helpful for a beginner.

Collapse
abdurrkhalid333 profile image
Abdur Rehman Khalid Author

Yes, it depends as you have already mentioned :)