CoreView - Handlebars Sproutcore UI Kit DI API Component API Router API Testing API RSVP: Promise API Ember Data Beta Ember Inspector Code split into JS libraries Six week release cycle 17 207 201 2012 2013 2014 2015 2017 2016 2018 17 2019 1.0
17 2019 1.6 1.10 Loading and error router substates. APIs improvements: - CP - Promises - Testing - RunLoop - Helpers Router Query Params HTMLBars Block Params Services and injections The Road to 2.0 Default CLI and ES6 modules Virtual DOM and DDAU Simplify APIs Ember Data SEMVER
17 2019 1.13 2.4 New Template APIs Closure actions Helper API hasBlock API New component lifecycle Themes 2.X Alignment JS: ES6.. Ember Modules API Stabilization: Data, CLI, FastBoot, Addons Angle Bracket Pods Routable Components Subteams Contextual Components New DI container API Virtual DOM and DDAU Stabilization
2019 2.14 2.18 Engines New Testing APIs Glimmer 2 Data, FastBoot, CLI 2017- State of the Union Routable Components Pods Module Unification Reduce file size ES6 Classes and decorators Drop IE9/10 support V1 Router API Ember Modules API Data, FastBoot, CLI
babel: { // For Babel 6.X and set `parser`: 'babel-eslint' plugins: [ 'babel-plugin-transform-class-properties', 'babel-plugin-transform-decorators-legacy' ]}});
from '@ember-decorators/object'; class City { name = 'Stockholm'; country = 'Sweden'; @computed('name', 'country') get fullName() { return `${this.name}, ${this.country}`; } } let city = new City(); set(city, 'country', 'Spain'); // CPs not working with native set console.log(city.fullName); // Stockholm, Spain
using `new` when extending EmberObject let city = new City({name: 'Huelva'}); (<=3.5) name -> Huelva (>=3.6) name -> Stockholm Deprecation + Breaking private API !! Must use `create` when extends from `EmberObject` city = City.create({name: 'Huelva'}); () name -> Huelva