компоненты - это кастомные элементы с поведением
директивы - декораторы для компонентов, грубо говоря атрибуты для элементов, расширяющие поведение оных.
Компоненты — это по сути сахар над директивами. Так что использовать нужно их везде и всегда. Сами директивы остается использовать только в тех случаях, когда вам необходимо добавить какое-то поведение для элемента.