AngularJS: Het verschil tussen Components en Directives

AngularJS: Het verschil tussen Components en Directives

Dit artikel is ouder dan vier jaar. De inhoud kan verouderd zijn, vooral bij technische voorbeelden of verwijzingen naar tooling.

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').

Reacties

Er zijn nog geen reacties, laat je reactie achter.

Laat een reactie achter

Heb je een aanvulling, vraag of eigen ervaring bij dit artikel? Deel hem hieronder.

Reacties worden eerst kort gecontroleerd voordat ze zichtbaar zijn.

Bekijk alle artikelen

Validatiemeldingen tonen met AngularJS

Een leeg formulier hoeft niet direct vol rode foutmeldingen te staan. AngularJS houdt per veld en formulier bij wat de gebruiker heeft gedaan en of de invoer geldig is. Met states zoals touched, dirty en submitted bepaal je wanneer een validatiemelding verschijnt. Zo laat je de feedback aansluiten op het invullen van het formulier.

Lees verder

4 performance tips voor AngularJS apps

4 performance tips voor AngularJS apps

Two-way binding is handig, maar een groeiend aantal watchers kan een AngularJS-app vertragen. Vier aandachtspunten helpen je bewuster om te gaan met de digestcycle en de kosten van databinding. Met onder meer one-time binding als manier om onnodig werk in de browser te beperken.

Lees verder

The bullshit of code coverage

A test suite can reach 100% coverage and still charge the wrong shipping fee or take a payment twice. Through boundary cases, misleading mocks and missing requirements, I examine what coverage actually proves. The useful question is not whether the code ran, but whether the tests would catch the mistakes your customers care about.

Continue reading