Ember mit neuen Features: Version 3.1 und 3.2 Beta

Ember 3.1 und 3.2 Beta veröffentlicht: ES5 Getters für Ember
Keine Kommentare

Das erste Minor-Release für Ember 3 ist da: Mit Ember 3.1 stehen einige neue Features zur Verfügung, beispielsweise eine native Implementierung von ES5 Getters. Ember 3.2 Beta kann außerdem bereits getestet werden.

Ember.js veröffentlicht neue Features nicht mit den Major-Releases, sondern mit den Minor-Versionen. Major-Versionen werden dazu genutzt, die Code-Basis aufzuräumen und zuvor als deprecated markierte Features auszusortieren. Minor-Releases führen dann neue Features ein. So auch Ember.js 3.1, das nun erschienen ist. Drei neue Features sind im Release enthalten. Außerdem sind zwei Deprecations mit dabei.

ES5 Getters in Ember.js 3.1

Das erste neue Feature sind ES5 Getters, die nun nativ zur Verfügung stehen. Bislang wurden in Ember noch set und get genutzt, die auf SproutCore zurückgingen, also nicht in nativem JavaScript implementiert waren. Mit Version 3.1 ist das nun anders. Diese Änderung folgt laut den Release Notes dem Reifungsprozess, den die native Implementierung von Settern und Gettern in JavaScript mit den Jahren durchlaufen habe. Nun stehen also native ES5 Getter zur Verfügung, mit denen die Werte von computed Properties ausgelesen werden können. Melanie Sumner und Kenneth Larsen geben im Ember-Blog folgendes Beispiel für die Implementierung:

import Component from '@ember/component';
import { computed } from '@ember/object';

export default Component.extend({

  name: computed('firstName', 'lastName', function() {
    return `${this.firstName} ${this.lastName}`;
  }),

  message: computed('name', function() {
    return `Hello ${this.name}!`;
  })

});

Damit könne aber nicht gänzlich auf die Verwendung der Legacy-Funktion get verzichtet werden, so die Autoren der Release Notes. Im Fall von Chained Paths, bei Verwendung von unknownProperty und in manchen Anwendungsfällen in Ember Data müsse weiterhin damit gearbeitet werden. Details dazu können dem Blogpost zum Release entnommen werden. Für die Migration steht ein von der Community entwickeltes Tool zur Verfügung, das bestehende Codebases auf ES5 Getter aktualisiert.

Optionale Features in Ember

Aufgrund der Deprecation-Strategie von Ember wurden außerdem optionale Features eingeführt. Grundsätzlich werden zu neuen Major-Releases nur dann Breaking Changes vorgenommen, wenn diese bereits lange im Voraus bekannt waren und in den vorherigen Minor-Releases angekündigt wurden. Das habe, so der Blogpost zum Release, aber zu Verzögerungen bei der Umsetzung einiger Änderungen geführt. Das neue Optional Features ist ein Command Line Tool für Ember, das via @ember/optional-features von npm bezogen werden kann und dieses Problem nun lösen soll. Das Tool selbst verändert nichts an Ember, allerdings könnten Breaking Changes damit künftig optional ein- und ausgeschaltet werden. Ember 3.1 bringt nun auch zwei optionale Features mit, die darüber verwendet werden können: den Application Template Wrapper, mit dem der <div>-Wrapper deaktiviert werden kann und Template-only Glimmer Components, die die Arbeit am dem DOM erleichtern sollen.

Auch interessant: Achtung, Aufräumarbeiten: Ember 3.0 ist da!

Das dritte neue Feature in Ember 3.1 ist ein Bugfix für Positional Parameters in Contextual Components. Als Deprecated markiert wurden der Aufruf von array.get('@each') und die privaten APIs propertyWillChange und propertyDidChange, die nach der Long-Term-Support-Phase von Ember 3 entfernt werden sollen.

Ember 3.2 Beta

Ember 3.1 ist fertig und steht zum Download bereit. Parallel zum Release der Minor-Version wurde auch die Beta-Version von Ember 3.2 veröffentlicht. Diese bringt einen neuen Helper mit, mit dem Bindings in Templates eingefügt werden können, ohne diese als Properties des entsprechenden Controllers oder der Component definieren zu müssen. Außerdem bringt Ember 3.2 drei neue Deprecations mit. Dazu gehört, dass Ember.Logger deprecated wurde und nun console genutzt werden soll. Auch Ember#route soll entfernt werden, hier wurde allerdings nur eine Umbenennung vorgenommen: Router#_route. Außerdem gibt es ein Update für direkt zugewiesene computed Properties. Zu allen Deprecations beider Versionen gibt es jeweils eigene Deprecation-Pages, die über die Neuerungen und nötigen Anpassungen an bestehendem Code informieren.

Wie immer wurden auch Ember Data und Ember CLI mit Ember.js in neuen Versionen veröffentlicht. Die Neuerungen an diesen Tools können ebenfalls im Blogpost zum Release von
Melanie Sumner und Kenneth Larsen nachgelesen werden. Ember.js 3.1 kann via npm bezogen werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

X
- Gib Deinen Standort ein -
- or -