Angular 8 Is Here: What's in it and Why You Should Care
Angular 8 is now available. Learn about some of our favorite new features, why we think they are important and how they make your life as an Angular developer easier.
Join the DZone community and get the full member experience.Join For Free
As you no doubt saw, version 8 of Angular was released recently. The update spans across the framework, Angular Material, and the CLI. We're always eager to dig in when a new version ships and wanted to share a few of the new features we find interesting and why.
After reading, let us know what you think! What else about this major release are you looking to take advantage of?
Differential Loading by Default
Prior to version 8 of Angular, in order to make sure your application was compatible with the majority of browsers, compilation (ES5 - Typescript that is compiled and bundled) and polyfills (which provide functionality not available in legacy browsers) were used.
In Angular 8, differential loading — which means the CLI actually builds a modern bundle and a legacy bundle — is handled by the Angular CLI as part of the build process for deployment by default.
According to the documentation, the Angular CLI uses two configurations for differential loading:
- Browserslist - The
browserslistconfiguration file is included in your application project structure and provides the minimum browsers your application supports. See the Browserslist spec for complete configuration options.
- tsconfig.json - The
targetin the TypeScript
compilerOptionsdetermines the ECMAScript target version that the code is compiled to. Modern browsers support ES2015 natively, while ES5 is more commonly used to support legacy browsers.
Note: Differential loading is currently only supported when using es2015 as a compilation target. When used with targets higher than es2015, a warning is emitted during build time.
One of the biggest benefits to differential loading that applications will save 7-20% of their bundle size.
Angular has long supported lazy loading by using the
loadChildren key in the route configuration. With version 8, the Angular team has migrated from a custom syntax that was built into the Angular toolchain to the industry standard dynamic import. For developers who are using VSCode or WebStorm, this provides a significantly better experience, as those editors will now be able to understand and validate the imports.
Preview Version of Ivy
With Angular 8, a preview version of Ivy (the next-generation rendering pipeline for Angular) is available. The Angular team still recommends it should be used for testing only and not yet for production. That said, the promise of Ivy is that it will make Angular applications smaller and faster.
Web Worker Support
In Angular 8, you can generate new web workers from the CLI. This allows you to speed up your application if you are doing any sort of CPU-intensive processing because it offloads work to a background thread.
New Builders API
With this new version, Angular now provides a new Builders API that allows you to perform building, testing, and deployment processes that were traditionally done with Schematics.
And Much More
As mentioned before, this is just a sampling of what is included in the Angular 8 release. Our engineers and advocates are excited to continue to dive deeper into all of the new features and functionality that have been delivered and you can expect to see more in-depth blogs in the coming weeks.
The Angular team has been very transparent about the fact that this release is an "evolution, not a revolution." We believe they delivered on that promise in a big way and are making Angular developers lives easier with the new functionality.
Published at DZone with permission of Sara Faatz, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.