Major differences and improvements between Angular 6 vs Angular
7 vs Angular 8
Angular 6 Features
Angular 6 was
released on May 4th, 2018. The major highlights of Angular 6 include the
Angular Command Line Interface (CLI), The Component Development KIT (CDK),
Angular Material Package update and with new TypeScript version 2.7, it is much
easier to code with conditional type declarations, default declarations, and
strict class initialization.
Angular Element
To create a widget
or component that can be included in any existing web page was made possible
with Angular Elements.
The Angular Elements package provided the ability to create an Angular component and then publish that component as a web component which can be used in any HTML page
The Angular Elements package provided the ability to create an Angular component and then publish that component as a web component which can be used in any HTML page
Service worker
Service workers
were first introduced in Angular 5. It is the scripts which run in the web
browser and manage to cache an application. Service workers come with some bug
fixes, including some new functionalities as there was no straight way for
deactivating the service worker and to overcome this, Angular 6 came up with a
new script file safety-worker.js in production bundle. This script file helps
them to unregister an existing service worker.
Internationalization
(i18n)
One of the major
changes introduced to Angular 6 is internationalization (i18n) feature with
runtime rendering so that there is no requirement to build one application per
locale.
Bazel Compiler
Bazel optimizes
your Angular compilation, it only rebuilds what is necessary
to build as it does not make any sense to rebuild the entire application for
every little change with this so we can archive fast and incremental builds.
ng-add
ng add helps you install and download new packages in your angular apps.
ng-update
ng update is used to
update and upgrade your packages it will help you to upgrade from Angular 5 to
Angular 6, or any other package in your Angular app.
Tree Shaking
Tree shaking is a
build optimization step which tries to ensure any unused code does not get used
in our final bundle which helps you to make your app smaller. It uses new
injectable services where we can register a provider directly inside the
@Injectable() decorator, using the new providedIn attribute.
Know more
about Top 10 Features of Angular
6.0
Some Major updates
in Angular 6
- Typescript 2.7.x supports
- Improved decorator error messages
- Fix platform-detection example for Universal
- Added to supports of Native-Element
- Added Optional generic type for ElementRef
- Updates on NgModelChange
- Add type and hooks to directive def
- Enable size tracking of a minimal CLI render3
application
- Add canonical view query
- <ng-template> now becomes
<template>
- Long-term support(LTE) added
to Angular from v4
Angular 7 Features
Google has
released Angular version 7 in
Oct 2018 with a lot of optimum features and significant changes like Angular
Material, CLI prompts, Scrolling, Drag, and Virtual and Drop & Component
Dev Kit (CDK)
CLI prompts
In Angular 7, the
command-line interface (CLI) prompts have been updated to v7.0.2, When the user
executes common commands like ng add @angular/material or ng new it will
automatically prompt users commands like ng add @angular/material help you
discover built-in features like routing or SCSS support.
New ng-compiler
Angular 7 added a
new compiler called the Angular Compatibility Compiler (ngcc). Just like the
name suggests, the angular compiler offers an 8-phase rotating ahead-of-time compilation(AOT)
and most of the angular applications noticed a massive reduction (95-99%) in
bundle sizes.
Angular Material
CDK (Component Dev Kit)
- Virtual scrolling
The scrolling package enables loads and unloads items from the DOM depending upon visible parts of lists, resulting into a much faster experience for users having huge scrollable lists.
- Drag & drop
Now you can re-order the list just by dragging and dropping with new @angular/cdk/drag-drop module which provides free dragging, sorting within a list, transferring items between lists, animations and much more.
Application
performance
Many developers
include the reflect-metadata polyfill in the production, so they decided to fix
this part by automatically removing it from your polyfills.ts file
and to speed up the performance new applications will warn when the initial
bundle is more than 2MB and will error at 5MB which user can modify it in
angular.json file.
Angular
Do-Bootstrap
Angular 7 added a
new life-cycle hook (ngDoBootstrap) and interface (DoBootstrap), It's used for
bootstrapping modules that need to bootstrap a component.
Router
In Angular 7, If
you try to trigger navigation outside of the Angular zone it logs a warning
(only in development mode). Also, adds navigation execution context info to
activation hooks.
Some Major updates
in Angular 7
- Angular 7 now supporting to TypeScript 3.1
- Added a new ability to recover from malformed
URLs
- Downloadable console for starting and running
Angular projects on your local machine
- compiler-cli: update tsickle to 0.29.x
- Export
defaultKeyValueDiffers to private API
Angular 8 Features
Angular 8 has
introduced with a bunch of workflow and performance improvements and a lot has
changed in the framework under the hood in terms of tooling. Comparing Angular
6 vs Angular 7 vs Angular 8 Finally, Angular 8 released with ivy rendering
which Angular team was along with updated angular core framework, Angular
Material, and the Command Line Interface or CLI.
Ivy Engine
Ivy is a major part
of this release, and it took most of the effort from Angular 6 to release it.
Ivy is a new rendering engine that will produce smaller bundle sizes But it's
not recommended to start using it in production not just yet. Know more about what
is ivy?
Web Workers
Web workers are
essential for improving the parallelizability and the speed of your
application. Angular 8.0 added support to CLI which provides one bundle for
every web worker & they do it by writing code off the main thread.
Lazy Loading
Lazy loading is
based on the concepts of Angular Routing and Angular 8 added support for
dynamic EcmaScript imports in router configuration as it helps bring down the
size of large files by lazily loading the files that are required.
Angular Firebase
Angular 8
officially added support for firebase and now deploying an Angular app to
Firebase is very easy, and it doesn’t take too much time using Angular CLI,
Service Worker.
Differential
loading
Your Angular 8 apps
now will more performant thanks to differential loading and two bundles are
created for a production build i,e bundle for new browser with ES2015+ and with
an old browser with ES5 version. The correct bundle will automatically load by
the browser with new ES6 modules present in the new browser.
The ng build command with the --prod flag will take care of bundling everything out of the box.
The ng build command with the --prod flag will take care of bundling everything out of the box.
Opt-In Usage
Sharing
With Angular 8, we
can switch between IVY and the regular View engine build. It enables opt-in to
sharing telemetry about your Angular CLI usage with the Angular and can collect
data like commands used and the build speed if users allow them which will help
developers improve in the future.
Angular CLI
Builders
The CLI Builder
API is stable and available to developers who want to customize the
Angular CLI by adding or modifying commands.
Major features
included in Angular 8
- AngularJS API Migration Improvements with
$location service
- Updated Typescript to 3.4.x
- @angular/platform-webworker
and@angular/platform-webworker-dynamic both the packages are deprecated
- @angular/http removed from the list of
packages
- ng-build, ng-test, and ng-run are equipped to
be extended by 3rd-party libraries and tool.
- Angular router backward compatibility
- Dart-sass for Sass files
- The ViewChild and ContentChild decorators now must have a new option
called static.
· we have discussed
the major differences between Angular 6 vs 7 vs 8. Being an AngularJS Development Company the
main updates received for developers in Angular 6 were ng update, Angular
Material + CDK components, CLI Workspaces, Animations Performance Improvements,
ng add, and Angular elements wherein Angular 7 they updated component dev kit
(CDK), Drag & drop. Virtual scrolling, application performance
improvements, documentation & dependency updates and Angular 8 released
with a major update in Ivy, web workers, lazy loading, improvement of
ng-Upgrade, support for node v10, support for TypeScript 3.1, CLI Prompts &
angular performance.
Angular 6
|
Angular 7
|
Angular 8
|
Angular Element
|
CLI Prompts
|
Ivy Engine
|
Service worker
|
Virtual Scrolling
|
Web Workers
|
Internationalization (i18n)
|
Drag and Drop
|
Lazy Loading
|
Bazel Compiler
|
Bundle Budget
|
Improvement in ng-upgrade
|
ng-add / ng-update
|
Angular Compiler
|
Support for Node 10
|
ng-update
|
Angular Do-Bootstrap
|
CLI workflow improvements
|
ngModelChange
|
Better Error Handling
|
Upgrading Angular Material
|
TypeScript 2.7 support
|
TypeScript 3.1 support
|
TypeScript 3.4 support
|
Improved decorator error messages
|
New ng-compiler
|
Differential Loading
|
<ng-template> updated to <template>
|
Native Script
|
Improved Web Worker Bundling
|
This comment has been removed by the author.
ReplyDelete