Frontend Developer @ Vertice International
Creator of DevNote
ng update @angular/cli @angular/core
or
ng update
$ ng update @angular/cli @angular/core
$ ng update
Visit update.angular.io
ng new
$ ng new project-name
ng add @angular/material
$ ng add @angular/material
src/polyfills.ts
Angular 6
Angular 7
A performance budget is a limit for pages which the team is not allowed to exceed. It could be a max JavaScript bundle size, total image weight, a specific load time or threshold on any number of other metrics.
angular.json
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
"budgets": [
{
"type": "initial",
"maximumWarning": "1mb",
"maximumError": "1.5mb"
}
]
Angular Material 6
Angular Material 7
- Render only visible items
- import {ScrollDispatchModule} from '@angular/cdk/scrolling';
- Use *cdkVirtualFor inside <cdk-virtual-scroll-viewport>
- Set itemSize (each item height in pixel)
import {ScrollDispatchModule} from '@angular/cdk/scrolling';
*cdkVirtualFor
<cdk-virtual-scroll-viewport>
itemSize
<cdk-virtual-scroll-viewport class="list-container" [itemSize]="53">
<div *cdkVirtualFor="let state of statesObservable | async;">
<div class="state">{{state.name}}</div>
<div class="capital">{{state.capital}}</div>
</div>
</cdk-virtual-scroll-viewport>
- import {DragDropModule} from '@angular/cdk/drag-drop';
- Use cdkDrag for draggable items
- Add cdkDropList around a set of cdkDrag elements for grouping draggables into reorder-able collection
- Connect cdkDropList instances by setting cdkDropListConnectedTo property
import {DragDropModule} from '@angular/cdk/drag-drop';
cdkDrag
cdkDrag
cdkDropList
cdkDropList
cdkDropListConnectedTo
<div>
<h2>To do</h2>
<div
cdkDropList
#todoList="cdkDropList"
[cdkDropListData]="todo"
[cdkDropListConnectedTo]="[doneList]"
(cdkDropListDropped)="drop($event)">
<div *ngFor="let item of todo" cdkDrag>{{item}}</div>
</div>
</div>
<div>
<h2>Done</h2>
<div
cdkDropList
#doneList="cdkDropList"
[cdkDropListData]="done"
[cdkDropListConnectedTo]="[todoList]"
(cdkDropListDropped)="drop($event)">
<div *ngFor="let item of done" cdkDrag>{{item}}</div>
</div>
</div>
- Native control has several performance, accessibility and usability advantages
<mat-form-field>
<select matNativeControl required>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
</mat-form-field>
@Component({
selector: 'app-root',
template: `
<h1>Hello Angular Elements</h1>
<slot></slot>
`,
encapsulation: ViewEncapsulation.ShadowDom
})
export class AppComponent {}
<ng-element>
<h2>Content Projection Work!!!</h2>
</ng-element>