AngularJS is a JavaScript framework by Google which aims to simplify front end app development. If you are into developing Single Page Apps, I’m sure you’ve heard of it. I am a big fan of AngularJS (I even wrote a book about it!) and in this article I am going to outline five of the reasons why I love it so much.
#1 Gives Structure to Your App
Normally, when we write JavaScript there is no well defined structure. While this can work for small apps, this is clearly not suitable for large scale apps. With AngularJS you can structure your source code by following either the MVC (Model-View-Controller) or MVVM (Model-View-Viewmodel) pattern. AngularJS is a MVW framework where W stands for Whatever works for you. You can organize your code into modules, which dramatically improves the testability and maintainability of your app.
#2 Two-way Data Binding
Data binding is certainly one the best features in AngularJS. You can declaratively bind your models to HTML elements. When the models change, the view is automatically updated and vice versa. This hugely reduces the amount of boilerplate code traditionally written to keep the model and view in sync.
#3 Directives
AngularJS Directives let you teach HTML new syntax. You can create reusable custom components with the directive API. For example, if you want a custom date picker widget you can create a <data-picker/>
component. If you want a fancy file uploader with progress indicator you can go ahead and create a <file-upload/>
component. Cool, isn’t it?
#4 Templating with HTML
AngularJS uses HTML for templating. This keeps things simple and allows designers and developers to work simultaneously. Designers can create UIs in the usual way and developers can use declarative binding syntax to tie different UI components with data models very easily.
#5 Embeddable, Injectable, and Testable
The best thing about AngularJS is that it’s a good team player. It never requires full commitment. As the AngularJS official website says, you can use as much or as little of AngularJS in your project as you need. If you need only two way data binding, you can include Angular and just use this feature.
AngularJS supports Dependency Injection out of the box. If you need something, you just ask Angular to inject it for you. It’s that simple. This hugely improves testability, as you can easily mock the components during testing.
AngularJS was created with testability in mind. The modules and Dependency Injection system make unit testing way easier. Furthermore, AngularJS offers a tool called Protractor which makes End-to-End testing a breeze. So, the code you develop is always testable and maintainable.
That’s not all! AngularJS also offers many more useful features like routing, filters, and animations that make AngularJS one of a kind. But the above points were more than enough for me to fall in love with it.
Do you want to learn AngularJS? Learnable recently published my book, AngularJS : Novice to Ninja which gets you up to speed with AngularJS. We’ll even cover the advanced concepts by building a Single Page Blogging app.
Sandeep is the Co-Founder of Hashnode. He loves startups and web technologies.