Angular 10 vs Angular 9

Angular 9 vs Angular 8 - What Are Differences in Angular 9, 8, 7, 6?

Angular 9 is the smaller, faster, and easier to use and it will be making Angular developers life easier. The fully version of Angular 9 will be released in the month of October/November 2019.

Added Angular 9 Features -
1.      Added undecorated classes migration schematic in the core.
2.      The formControlName also accepts a number in the form
3.      Now allow selector-less directives as base classes in View Engine in the compiler.
4.      Added support selector-less directive as base classes in Ivy and also make the Ivy compiler the default for ngc.
5.      Convert all ngtsc diagnostics to ts.Diagnostics
6.      bazel: support ts_library targets as entry-points for ng_package.
7.      core: add dynamic queries schematic.
8.      core: Mark TestBed.get as deprecated.
9.      ivy: expose helper and also support ng-add in localize package.
10.  ivy: i18n – add syntax support for $localize metadata block.
11.  ivy: i18n – reorganize entry-points for better reuse.
12.  language-service: enable logging on TypeScriptHost.
13.  language-service: provide diagnostic for invalid templateUrls.
14.  language-service: provide diagnostics for invalid styleUrls.


core: TestBed.get function is marked as deprecated, use TestBed.inject instead.

Performance Improvements :

  1. Binding update benchmark and also convert all node-based benchmark to use a testing harness.
  2. Avoid megamorphic reads during property binding.
  3. Avoid repeated lview reads in pipe instructions.
  4. Avoid repeated LView reads in property instructions.
  5. Avoid unnecessary DOM reads in styling instructions.
  6. Initialise TNode inputs / outputs on the first creation pass for the Ivy.
  7. limit TNode.outputs reads for the ivy.

8. The language-service, keep analyzedModules cache when source files don't change.

It looks like -
describe('TypeScriptServiceHost', () => {
  it('should not clear caches when external template changes', () => {
    const tsLSHost = new MockTypescriptHost(['/app/main.ts'], toh);
    const tsLS = ts.createLanguageService(tsLSHost);
    const ngLSHost = new TypeScriptServiceHost(tsLSHost, tsLS);
    const oldModules = ngLSHost.getAnalyzedModules();
    tsLSHost.override('/app/', '<div></div>');
    const newModules = ngLSHost.getAnalyzedModules();


What’s New In Angular 8?

Angular 8 being smaller, faster and easier to use and it will making Angular developers life easier. Angular version numbers have three parts: major.minor.patch. This release contains the following added and Improvements over the entire Angular platform including:-

=> Added Support for TypeScript 3.2
=> Added a Navigation Type Available during Navigation in the Router
=> Added pathParamsOrQueryParamsChange mode for runGuardsAndResolvers in the Router
=> Allow passing state to routerLink Directives in the Router
=> Allow passing state to NavigationExtras in the Router
=> Restore whole object when navigating back to a page managed by Angular Router
=> Added support for SASS
=> Resolve generated Sass/Less files to .css inputs

=> Added Predicate function mode for runGuardsAndResolvers:-
This option means guards and resolvers will ignore changes when a provided predicate function returns `false`. This supports use cases where an application needs to ignore some param updates but not others.

For example, changing a sort param in the URL might need to be ignored, whereas changing the `project` param might require re-run of guards and resolvers.

=> Added functionality to mark a control and its descendant controls as touched: - add markAllAsTouched () to AbstractControl

=> Added ng-new command that builds the project with Bazel
=> Use image based cache for windows BuildKite
=> Export NumberValueAccessor & RangeValueAccessor directives

=> Use shared DomElementSchemaRegistry instance for improve performance of platform-server (@angular/platform-server):-
Right now the ServerRendererFactory2` creates a new instance of the `DomElementSchemaRegistry` for each and every request, which is quite costly (for the Tour of Heroes SSR example this takes around **15%** of the overall execution time)

=> Now the Performance Improvements on core, more consistent about “typeof checks”: -
When testing whether `value` is an object, use the ideal sequence of strictly not equal to `null` followed by `typeof value === 'object'` consistently. Specifically there's no point in using double equal with `null` since `undefined` is ruled out by the `typeof` check.

Also avoid the unnecessary ToBoolean check on `value.ngOnDestroy` in `hasOnDestroy()`, since the `typeof value.ngOnDestroy === 'function'` will only let closures pass and all closures are truish (with the notable exception of `document.all`, but that shouldn't be relevant for the `ngOnDestroy` hook)

=> In the Compiler-CLI, expose ngtsc as a TscPlugin

=> Restore whole object when navigating back to a page managed by Angular Router:-
This feature adds a few capabilities. First, when a `popstate` event fires the value of `history.state` will be read and passed into `NavigationStart`. In the past, only the `navigationId` would be passed here.
Additionally, `NavigationExtras` has a new public API called `state` which is any object that will be stored as a value in `history.state` on navigation.

For example, the object `{foo: 'bar'}` will be written to `history.state` here: -`router.navigateByUrl('/simple', {state: {foo: 'bar'}});`


Anil Singh is an author, tech blogger, and software programmer. Book writing, tech blogging is something do extra and Anil love doing it. For more detail, kindly refer to this link..
My Blogs - and
My Book2 - ANGULAR 2 INTERVIEW QUESTIONS BOOK - Both Books are Available on WorldWide. Powered by Blogger.