Declare a compilation context for a set of components. A module can associate related code such as services to form functions units. Just like javascript modules, NgModules can export functionality and also import it from other modules.
They are logic exported as a class that handles functionality and data for your templates.
Are functions that modify javascript classes. They have specific metadata, so the system knows what those classes mean and how they should work.
They provide logic and connect that data to your template.
They respond to users input by updating your application data.
They interpolate values from your app to the HTML.
It means that changes in the DOM such as user choices are also reflected in your program data.
They handle data and logic that will be shared all around your app. They are injectable.
It let you keep your components lean and efficient.
The routing is basically in charge of giving access to other components to the users. They can provide lazy-loading and we can manage Guards to make sure the user can navigate to that specific page.
Is basically loading our components on demand (only when we need them).
Is a library for reacting programming using observables to make it easier to compose asynchronous code. It provides better performance, better modularity and better debugging.
Is an stage management library. When the app grows in size and complexity the stage management becomes harder.