I am learning Angular and I am struggling to understand the application of Services. I understand services are for reusability but that can be acheived by Components, too. Also, we can make components public and share also. So why exactly do we need services?
Services don't have a view associated with them (no html and css). Less overhead. Also, Services can be reused anywhere without needing to create a new instance of the service. This is invaluable if you want to share data or functions globally (or across many different components/contexts). With components, you -can- share the same instance of a component with other components in your app using dependency injection, but you can only share that instance with components that are descendants of the component you want to share. This is pretty limiting.