JavaScript-Framework: Ember 3.6 stellt Native-Klassen zur Verfügung

Die Native Classes sind zwar jetzt Teil von Ember, jedoch fehlen noch ein paar wichtige Bausteine, um eine Einsatzempfehlung des Ember-Teams zu bekommen.

In Pocket speichern vorlesen Druckansicht
JavaScript: Ember 3.6 stellt Native-Klassen zur Verfügung
Lesezeit: 3 Min.
Von
  • Björn Bohn

Version 3.6 des Webframeworks Ember ist erschienen. Gleichzeitig beginnt – wie beim Projekt üblich – die Betaphase für Version 3.7. Die Highlights des neuen Releases sind zwei neue Klassen: die ES Class und die Native Class. Damit gelten die Native-Klassen als stabil und als öffentliche API, deren Verhalten sich nicht mehr ändern wird. Darüber hinaus gibt es zwei neue RouterService-Methoden. Der Bestandteil des Frameworks Ember Data hat sich im Vergleich zur vorigen Veröffentlichung nicht geändert, das Command-Line Interface (CLI) hat zumindest eine Fehlerbehebung erhalten.

Das Einführen der Native-Klassen in Ember bedeutet jedoch nicht, dass das Ember-Team deren Anwendung empfiehlt. Die Klassen gelten zwar als stabil, Ember unterstützt jedoch noch keine Class Fields oder Decorator, da beide noch nicht vom Technical Committee Nummer 39 (TC39) validiert sind. Das Komitee ist Teil von ECMA, der Institution die den Standard der Programmiersprache JavaScript unter der Spezifikation ECMAScript verwaltet. Ohne Fields und Decorator ist die Class-Syntax meistens den Aufwand nicht wert, da viele der täglichen Programmieraufgaben in Ember diese voraussetzen.

Daher empfehlen die Ember-Macher weiterhin den Einsatz der EmberObject.extend()-Syntax. Wer das Risiko allerdings nicht scheut, kann die neuen Klassen schon jetzt verwenden und die fehlenden Lücken mit Community-Projekten wie ember-cli-typescript und ember-decorators schließen. Darüber hinaus arbeitet Ember an einem Codemod, der das alte Klassenmodell in das neue umwandeln soll, wenn die Zeit dafür reif ist. Die alte Syntax wird aber noch eine Weile von Ember unterstützt.

Ember 3.6 bringt zwei neue Methoden mit: recognize(url) und recognizeAndLoad(url) mit. Erstere gibt die RouteInfo auf Basis der angegeben URL zurück, während zweitere eine String-URL nimmt und ein Promise zurückgibt, das sich in RouteInfoWithAttributes für von der URL repräsentierte leaf-most-Route auflöst. Durch dieses letzte Stadium verfügt Ember auch über eine neue beobachtbare Eigenschaft currentRoute, die immer dann wechselt, wenn eine Route-Transition vorkommt.

Bislang hat das Ember-CLI für TravisCI-Nutzer immer zwei CI-Builds pro Pull Request erhalten – eine für den Branch Push und eine für das Update der Pull Request. Das Ember-Team hat diesen Missstand nun behoben.

Eine vollständige Liste der Neuerungen findet sich im Ember-Blog. Wer sofort eine Version weiterspringen möchte, findet im Beta-Channel der Ember-Website die erste Beta für Ember 3.7. (bbo)