First let's list all the important classes included in the framework which are not originally in Typescript. Yes Typescript is the main language of Angular, which is a superset of Javascript, that means it is transtyped to a higher level language where we use Classes, objects, types, interfaces and abstract classes naturally. This allows a rich libraries of objects you can use to do the right job a frontend application should do, without the headache. So learning these fundamental objects or classes you can use allows you to perform in your tasks as a frontend engineer. By the way, React and Vuejs don't use typescript initially, you need to install different dependencies which are usually not at the level or as powerful as what Angular does.
So here we listed many classes from @angular/core, which are the main ones to create your own classes and components! Maybe you notice important classes missing in the list? Yes, the Observable classes from 'rxjs'. This is an important and powerful library deeply integrated into the Angular framework. Do you speak Observable? Let's see a little how it works.
Observables in Angular are central to the development and let me tell you, they are powerful! They allow us to manage asynchronus data better, where you can use operators to manipulate it and variables can subscribe to them to listen for any changes happening. You can also unsubscribe to it when needed. Subjects and BehaviorSubject are both types of observables. While Observablse can only be read from as the subscribe method is called (can be called "cold observable"), Subjects can emit data with the function called next (can be also called "hot observable", which is multicast. It allows many variables to receive the new value).
Now let's see how operators can be useful when we receive the data from various apis. Here is an example with forkJoin.
Now let's use this data into a fictive user menu. This is what I called simplicity, good code is readable and easy to maintain, not a puzzly like I saw in certain React or Vue projects where they were using too much polymorphism and typed excessively, it was a real burden to maintain. Also we must use Angular the way it is meant to be used, not like React or Vue if you are coming from another framework... This blog is to help you to use Angular correctly and to learn how simply.
This is what I call simplicity and readability and it's exactly why you should use Angular above any frameworks for any enterprise applications. We worked with Angularjs before, there's a reason why you need to upgrade to Angular 2+ and also not to remain working with frameworks more similar like its predecessor, which is day and night even if you get libraries that are useful. Angular has everything you need like in a complete framework when you develop with a backend language such as Java Spring. Enterprise and professional applications need enterprise quality frameworks, otherwise I'm afraid the code will get harder and harder to maintain with other frameworks like I have experienced.
Here is the example of a simple store service that you inject into a component with the help of dependency injection. The service contains a Subject which allows you to manage the state of your objects wherever you need in your application.
With the right information, you have all that you need to develop simple Angular apps no matter how complex or large is your project. It's always about how you maintain your code and how you find it easy to understand what is being done. Obviously the bases of Angular needs to be covered, and this website is to help you do just that and to make you realize that Angular is a better choice. Also we don't need NgRx with Angular if you manage your states with Dependency Injection and BehaviorSubject. Keep the application code simple and organized.