Angular is an open-source web development framework which is written in TypeScript. It is designed for building scalable single page web applications using TypeScript, CSS, and HTML.

Angular is a component-based framework with a set of well-integrated libraries that cover a wide range of functions, such as routing, forms management, client-server communication, and more. It includes a set of developer tools for writing, building, testing and updating code. You can build from small to large enterprise-level applications using Angular.

Why use Angular?

  • Angular was built with speed and performance in mind. It is fast and efficient.
  • The Angular framework is based on components which makes the code highly reusable.
  • Angular applications are built using TypeScript. The use of TypeScript helps to find and eliminate data type errors early while writing the code.
  • Every object in Angular is POJO (Plain Old JavaScript Object) which means we do not need any additional getter and setter functions. We can also add or remove properties from the objects when necessary.
  • Angular was designed to make development of web application easier using the MVC architecture. It separates the model from the view and handles data binding very well.
  • Angular is a suitable for any kind of small and large web applications.
  • Angular is SEO friendly.
  • Testing is easier because it is a component-based framework.

Basic Concepts of Angular

The following concepts can help to better understand in designing and developing applications using Angular:

  • Component: There is at least one root component in every Angular application, which connects a component hierarchy to the page document object model (DOM). Each component contains an associated HTML template that defines a view to be presented in a target environment, as well as a class that holds application data and functionality.
  • Module: Every Angular application contains a root module, which is commonly referred to as AppModule, and which provides the bootstrap mechanism for launching the app. In Angular, a module is a container for the components, directives, pipes, and services that are part of the application. A typical Angular application has a large number of functional modules.
  • Services: In Angular, services are typescript classes which are used for encapsulating business logic and data that can be injected into components that require it. Services classes are created with the @injectible decorator. The decorator provides the metadata that enables other providers to be injected into your class as dependencies.
  • Routing: Routing means navigating by interpreting a browser URL as a command to switch between corresponding pages. Angular provides Router NgModule which is a service that allows you to define a navigation path between your application's various states and view hierarchies. In angular, we can change what the user sees by showing or hiding parts of the display that correspond to specific components instead of sending a request to the server to receive a new page.