New features in Angular 14 and 15
Angular team says they will release new versions once every 6 months. In fact, they work so efficiently that they always finish the tasks ahead of schedule. Ok, let's get straight to the point: Updates and new features in Angular 14 and 15.
						prerequisite: Angular 15 is installed. If not, please install it
						as below and confirm the version. In Powershell command, use
						
					npx ng v
						
npm install -g  @angular/cli
ng v
              
					New Features in Angular 14
- 
							Standalone components: Without NG Module. Angular 14 introduces
							an easier way to create reusable components that are built right
							into the framework.
							
- 
									what can be standalone?
									
- standalone component
 - standalone directive
 - standalone pipe
 
 - 
									You can use a standalone component with
									
- module-based components
 - other standalone components
 - loading routes
 - lazy loading
 
 - 
									Create a standalone component
									
- ng g p your-pipe --standalone
 - ng g d your-directive --standalone
 - ng g c your-component --standalone
 
 - 
									Standalone examples
									
// pipe @Pipe({ name:'your-pipe', standalone: true }) // component @Component({ selector:'your-component-selector', standalone:true, imports: [CommonModules, ReactiveFormsModules], template:`<button (click)="onSave()">save</button>`, styleUrls:['./your-css-style-file.css'] }) export class YourComponent implements OnInit(...) // use case 1: use standalone component in other module, pass it into imports array as below @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, YourStandaloneComponent ], providers:[], bootstrap:[AppComponent] }) export class AppModule() // use case 2: bootstrap the whole application using the standalone component // step1: in main.ts, import the standalone component and bootstrapApplication from @angular/platform-browser // main.ts import { bootstrapApplication} from '@angular/platform-browser' import { YourStandaloneComponent } from '...' bootstrapApplication(YourStandaloneComponent,{providers:[]}) // step2: in index.html, replace app-root by your standalone component's selector <html> ... <body> <!-- <app-root><app-root>--> <your-stand-alone></your-stand-alone> </body> </html> - 
									convert a module-based component to a standalone one
									
- set the standalone property to true
 - remove it from the declaration array of the module which it was a part
 - use imports array to add dependencies
 
 
 - 
									what can be standalone?
									
 - 
							Strictly Typed Forms: use FormBuilder to declare a typed form
							and we get type safety without extra efforts. If declare it as
							FormGroup then initialize it in ngOnInit, we cannot benefit from
							it.
							
						 - Angular Cli Auto-Completion...
 - 
							Improved Template Diagnostics
							
						 - 
							Streamlined Page Title Accessibility
							
// app-routing.module.ts example const routes: Routes = [ {path:'login', title:'login', component: LoginComponent} ] // we can define title using a custom function. - 
							latest Primitives in the Angular CDK
							
@angular/cdk/listbox 
Top updates and new Features in Angular 15
- 
							Stable image directives.
							
img src='' . => img ngSrc="" - 
							less boilerplate code
							
{ path: 'lazy', loadComponent: () => import('./lazy-file').then(m => m.LazyComponent), } - 
							Better Experimental ESbuild Support. Angular 15 offers
							experimental Sass, SVG template, file replacement, and ng build
							--watch support. You have to update your builders angular.json
							with esbuild from:
							
"builder": "@angular-devkit/build-angular:browser"to:"builder": "@angular-devkit/build-angular:browser-esbuild" - directive composition API
 - improved stack tracks for debugging
 - Automatic imports in language service, which brings better authoring experience.