Components are the basis of modern SPAs (Angular, Vue, React). They are the simplest building blocks of SP applications. A SPA app is a tree of components, it starts with the root component, going up spreading into multiple branches. A Component contains the View to be displayed, a Controller that contains the display logic and the Model that tells the component how data is to be displayed. The Components are composable, they build up an app by stacking the components on each other like LEGO blocks.