2016-07-18 4 views
3

Угловой 1.5 вводит components:Когда я должен использовать компонент вместо директивы?

В Угловом, компонент представляет собой особый вид директивы, которая использует более простую конфигурацию, которая подходит для компонента на основе структуры приложения.

Я действительно не могу найти каких-либо преимуществ при использовании их по директивам. Из того, что я могу сказать, у них меньше возможностей (например, не более compile или link функций) и ввести немного отличающийся синтаксис.

Документация для использования, потому что это «проще» и поможет перейти на Угловой 2, но у нас все еще есть директивы в Угловом 2, верно? Есть ли какая-то причина, по которой я должен преобразовывать свои директивы в компоненты моего приложения Angular 1.5?

ответ

5

Угловое 2

компонент имеет вид, его часть пользовательского интерфейса. Директива нет.

Это просто, если ваш элемент имеет вид/шаблон, а затем его компонент. Если вам просто нужно получить элемент управления, измените атрибуты, зарегистрируйтесь в директивах events ->.

Угловое 1

В угловом 1 компонент является фасад директив. Другими словами, компонент (в угловом 1.5+) является фабрикой для создания директив. Использование компонента - лучшая практика, поскольку он создает директивы «правильный». Директивы в Angular1 являются суперконфигурируемыми и имеют множество опций, что приводит к плохой реализации и плохому PR для углового :) Итак, компонент был добавлен, чтобы помочь разработчикам в правильном создании директив (без видимости, согласованного контроллера, и т. Д.). .)

+0

Я должен был упомянуть, что я не использую Угловой 2. Отвечает ли этот ответ на Угловой 1.5? – adamdport

+0

Нет, этот ответ предназначен только для Angular 2. В угловом 1 компонент является «фасадом» для директив. Другими словами, компонент (в угловом 1.5+) является фабрикой для создания директив. Использование компонента - лучшая практика, поскольку он создает директивы «правильный». Директивы в Angular1 являются суперконфигурируемыми и имеют множество опций, что приводит к плохой реализации и плохому PR для угловых :) Итак, компонент ** ** был добавлен, чтобы помочь разработчикам в правильном создании директив (без видимости, согласованности контроллер как и т. д.) –

+0

Вместо того, чтобы упоминать, вы должны скорее удалить тег 'angular2'. –

Смежные вопросы