Components can only have so much inside them. They take props from the parent component, so we can customize their behavior. Additionally, they can have computed properties and watchers to watch for reactive properties and return the data or do the things we want them to do. They can also have methods that allow us to do specific things with them. Components should be simple; that is, they should not have too much going on inside them. Templates should only have a few elements and components inside them in order to keep them simple. Components also have some built-in directives for us to manipulate the Document Object Model (DOM) and carry out data binding.
Other than that, components cannot do much. It would be impossible to build anything with non-trivial complexity if we only have a few components and no way to navigate with URLs.
If our app only has components, then we can only nest a few of them before it gets too complex. Additionally, if we have...