title: What is a component in AngularJS?
body: <p>I was doing some reading about directives and was wondering what the distinction was between a directive and a component, when I found that there are lots of components in AngularJS.</p>
  
  <p>There is a function component, type component, service component, filter component, provider component, etc... Then to top it off I found that a module component is a component consisting of directives, services, filters, providers, templates, global API’s, and testing mocks. That tended to make things more confusing.  I couldn't find a definition of a "component" in the Angular documentation that would explain the distinctions between the types of components listed.</p>
  
  <p>So what exactly is a "component" in AngularJS?  Is it something as simple as reusable blocks of code?</p>
  
  <p>By the way, I'm using Angular version 1.4.2 currently.</p>