Angular
8 is the smaller, faster, and easier to use and it will be making Angular developers
life easier.
What's New in Angular 9? [Angular 9 New Features]
The latest features introduced during the Angular 8 release candidate stage include:
This
release contains the following added and Improvements over the entire Angular
platform including:-
What's New in Angular 9? [Angular 9 New Features]
The latest features introduced during the Angular 8 release candidate stage include:
1.
Smaller bundles, CLI APIs, and
alignment with the ecosystem
2.
AngularJs Migration Improvements
3.
Route Configurations use Dynamic
Imports
4.
Differential Loading by Default
5.
Web Worker Support
6.
New Deprecation Guide
7.
Builder APIs in the CLI
8.
Workspace APIs in the CLI
9.
Ivy & Bazel
10. Ivy
aims to change this. Compared with the current Angular View Engine, Ivy
provides the following benefits.
i.
Generated code that is easier to read
and debug at runtime
ii.
Faster re-build time
iii.
Improved payload - applications size
improvements
iv.
Improved template type checking
v.
Great backward compatibility
Differential
loading of modern JavaScript:-
Use “ngx-build-modern”:
Differential Serving for Angular and the CLI.
Must be:-
1.
Angular >= 7.0.0
2.
Angular CLI >= 7.0.0
The important features of “ngx-build-modern”:-
· Create
optimized bundles for modern browsers
· Create
legacy bundles for older browsers
· Make
the browser loads the right set of bundles
· Automate
this all by providing a CLI extension
For more detail about – ngx-build-modern
=>
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 the 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 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 improving 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 the 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 the 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 an 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'}});`
Stayed Informed
– Angular Book - All in One (Including Version 2, 4, 5, 6 and 7)
Stayed Informed
– Angular Interview Question (Including Version 2, 4, 5, 6 and 7)