Components are supposed to be more strict than directives (for simple directives).
They do not expose compile
function.
this is from the docs:
When not to use Components:
for directives that rely on DOM manipulation, adding event listeners etc, because the compile and link functions are unavailable
when you need advanced directive definition options like priority, terminal, multi-element
when you want a directive that is triggered by an attribute or CSS class, rather than an element
In other words - components don't replace directives, they inherit from them making it easier to build simple directives. You can still use directives to the task. They are not deprecated.