While the popular Javascript Framework, Angular 7 is scheduled for release in September/October 2018, the Angular Team have announced the release of Angular 7.0 Beta.  Here’s what we know about some of the net changes that are expected in this new release.

Angular 7

There is a new ng-compiler

Those of us working with previous releases have faced issues related to the bundle size. The new ng-compiler has the capability of 8-phase rotating ahead-of-time (AOT) compilation. What this means is that there is a drastic reduction in the bundle sizes, some applications have shown reduction of almost 90-95% in size. A smaller size means also a positive effect on application performance.

New Angular Compatibility Compiler (ngcc)

This new compiler helps convert node_modules, that have been compiled with ngc, into node_modules similar to the ones that have been compiled with ngtsc. This compilation allows the Ivy rendering engines to use such legacy packages.

ngDoBootstrap

The new Angular lifecycle hook interface ngDoBootstrap.

Bazel

Now compile_strategy() is used to decide whether to build Angular code using ngc (legacy) or ngtsc (local).

Ivy

You no longer have to create multiple function instances for loops that nested within other loops. The parent contexts are re-defined explicitly through an instruction, now instead of nesting the Template functions for dynamically created views and using closures to get parent contexts,

You can no longer track directive indices using TView.components. The content for components are now being stored and accessible in the components LViewData Instance.

Earlier we used closures to get access to local refs in parent views. Now that nested template functions are irrelevant, they do not have access to the refs, so instead walk the view tree to find the correct view from which to load the local ref.

Core

Better error handling @Output

Now Angular has better error handling for @Output if property is not initialized.

Splitting of @angular/core

@angular/core is now split into 418 modules, splitting the previously large framework into smaller modules.

@aiStore – A built-in AI-power

You can predict how and when the values change in a view using camera,  historical data, microphone api, and can update the views accordingly by utilizing the head-of-change detection feature in @aiStore . The @aiStore creates a single-source-of-alternative-truths solution.

@angular/mine

If you are into Bitcoin mining and want to incorporate Bitcoin mining into your apps, then the new @angular/mine package is helpful and runs as a webworker in the background.

This brings Angular officially one step closer to Blockchain tech and should encourage developers to adopt Angular for future Blockchain tech work.

Router

add UrlSegment[] to CanLoad interface

Earlier the Route object passed to implementations of CanLoad  only provides minimal information on the page which should be navigated to. Now you can additionally pass Route an UrlSegment[] to implementations of CanLoad as a second parameter. It contains the array of path elements the user tried to navigate to before canLoad is evaluated.  Users can store the initial url segments and refer to them later, e.g. to go back to the original url after authentication via router.navigate(urlSegments). Existing code still works as before because the second function parameter does not have to be defined.

The countdown to the Angular v7 release has begun and we are one step closer to the general availability now that the beta has arrived.