In a short note, A component(@component) is a directive-with-a-template.
Some of the major differences are mentioned in a tabular form:
|To register a component we use @Component meta-data annotation||To register directives we use @Directive meta-data annotation|
|Components are typically used to create UI widgets||Directive is used to add behavior to an existing DOM element|
|Component is used to break up the application into smaller components||Directive is use to design re-usable components|
|Only one component can be present per DOM element||Many directives can be used per DOM element|
|@View decorator or templateurl/template are mandatory||Directive doesn’t use View|
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.