AngularJS: Het verschil tussen Components en Directives
Geplaats op 22 mei 2017 | Leestijd: 3 minuten
AngularJS is een uitstekend framework om snel client-side apps mee te maken. Het MVC framework biedt controllers, services, factories, views, directives en componenten. Servies, controllers en views hebben een duidelijke functie binnen de app, maar components en directives hebben veel gemeen.
Belangrijkste kenmerken
Components
- heeft een template
- maakt een component (nieuw DOM element)
- is technisch een directive
Directives
- voegt gedrag toe aan een bestaand component (of ander DOM element)
Verschil
Het belangrijkste verschil tussen een component en directive is dat een component wordt gebruikt om templates te laden, je kunt de template voorzien van logica door bijvoorbeeld ng-click, ng-if en ng-submit directives te gebruiken.
Een Directive wordt gebruikt om gedrag toe te voegen aan een DOM element. Voorbeelden zijn; required-directive op een input element.
|
Directive
|
Component
|
bindings
|
Nee
|
Ja
|
bindToController
|
Ja
|
Nee
|
compile function
|
Ja
|
Nee
|
controller
|
Ja
|
Ja
|
controllerAs
|
Ja
|
Ja
|
link functions
|
Ja
|
Nee
|
multiElement
|
Ja
|
Nee
|
priority
|
Ja
|
Nee
|
replace
|
Ja
|
Nee
|
require
|
Ja
|
Ja
|
restrict
|
Ja
|
Nee
|
scope
|
Ja
|
Nee
|
template
|
Ja
|
Ja
|
templateNamespace
|
Ja
|
Nee
|
templateUrl
|
Ja
|
Ja
|
terminal
|
Ja
|
Nee
|
transclude
|
Ja
|
Ja
|
Conclusie
Met de volgende vuistregel kun je altijd snel een keuze maken of je een component of directive moet maken; Gebruik component als je een element wilt maken (restricted to 'E'). Gebruik een directive als je een attribute wilt maken (restricted to 'A').