The core concept of any Angular application is the component. In effect, the whole application can be modeled as a tree of these components.
This is how the Angular team defines a component:
A component controls a patch of screen called a view.
Basically, a component is anything that is visible to the end user and which can be reused many times within an application.
In AngularJS we had router views and directives which worked sort of like components. The idea of directive components became quite popular. They were created by using directive with a controller while relying on the controllerAs and bindToController properties. For example: