Angular 6釋出,新功能詳解
5月4日,Angular 6.0.0正式釋出,新版本重點關注工具鏈以及工具鏈在Angular中的執行速度問題。
這次更新還包括框架包(@angular/core,@angular/common,@angular/compiler等)、Angular CLI、Angular Material + CDK,這主要是為了解決相容問題,這些專案的補丁版本將根據專案需求釋出。
ng update
ng update <package>是一種新的CLI命令,它可分析你的package.json,並基於對Angular的瞭解向你的應用程式推薦更新。
ng update可以幫助你使用正確版本的依賴包,讓你的依賴包與你的應用程式同步,使用schematics時,第三方還能提供指令碼更新。如果你的某個依賴包提供了ng update schematic,那麼它在進行重大更改時會自動更新程式碼!
ng update不會取代你的軟體包管理器,而是在後臺使用npm或yarn來管理依賴包,除了更新和監視依賴包外,ng update還會在必要的時候對你的專案進行改造。
例如,命令ng update @angular/core將會更新所有的Angular包以及RxJS、FTypeScript,它還將在這些包中執行可用的schematics以保證版本是最新的。同時,這個命令還能自動安裝rxjs-compat到你的應用程式中,以使RxJS v6更加流暢。
ng add
另一項新的CLI命令ng add <package>將使你的專案更容易新增新功能。ng add使用軟體包管理器來下載新的依賴包並呼叫安裝指令碼,它可以通過更改配置和新增額外的依賴包(如polyfills)來更新你的應用。
你可在新的ng new應用程式中嘗試以下動作:
- ng add @angular/pwa:新增一個app manifest 和service worker,將你的應用程式變成PWA。
- ng add @ng-bootstrap/schematics:將ng-bootstrap新增到你的應用程式中。
- ng add @angular/material:安裝並設定Angular Material和主題,註冊新的初級元件 到ng generate中。
- ng add @clr/angular@next:安裝設定VMWare Clarity。
Angular Elements
Angular Elements的第一個版本專注於在現有的Angular應用程式中啟動Angular元件,方法是將它們註冊為Custom Elements,目前已被廣泛用於angular.io內容管理系統中,它嵌入HTML,可動態啟動系統功能。
Angular Material + CDK 元件
最值得一提的是用於顯示分層資料的樹形控制元件,遵循資料表元件的模式,CDK包含樹的核心指令,而Angular Material則提供與頂層的Material Design樣式相同的體驗。
於此同時,還更新了徽章(badge)和底部選單欄的元件,徽章用於顯示小而有用的資訊,例如未讀資訊的數量。
目前,@angular/cdk/overlay軟體包是CDK最強大的基礎架構之一,你可以利用他們來構建自己的UI庫。
Angular Material 初級元件
一旦執行ng add @angular/material並新增材料到現有的應用程式中,就能夠生成3個新的初級元件。
Material Sidenav
Material Sidenav是帶有應用程式名稱和側面導航的工具欄的初級元件,它基於斷點視窗(breakpoints)進行響應。
執行:
ng generate @angular/material:material-nav
會生成以下元件:
Material Dashboard
Material Dashboard是包含動態網格列表的啟動元件。
執行:
ng generate @angular/material:material-dashboard
會生成以下元件:
Material Data Table
Material Data Table已預配置了一個用於排序和分頁的datasource。
如下圖:
CLI Workspaces
CLI v6現已支援多專案工作區,如多個應用程式或庫,CLI專案用angular.json取代angular-cli.json構建和配置專案。
每個CLI工作區都有專案,每個專案都有目標,每個目標都可以有配置。
angular.json: { "projects": { "my-project-name": { "projectType": "application", "architect": { "build": { "configurations": { "production": {}, "demo": {}, "staging": {}, } }, "serve": {}, "extract-i18n": {}, "test": {}, } }, "my-project-name-e2e": {} }, }
庫支援
接下來介紹CLI最重要的一項功能:支援建立和構建庫。
ng generate library
該命令將在CLI工作區內建立一個庫,並對其進行配置以進行測試和構建。
Tree Shakable Providers
為了讓你的應用更小,我們將服務引用模組改為模組引用服務,這讓我們只需要構建在模組裡注入的服務。
之前:
app.module.ts: @NgModule({ ... providers: [MyService] }) export class AppModule {}
my-service.ts: import { Injectable } from '@angular/core'; @Injectable() export class MyService { constructor() { } }
以後,NgModule不再需要引用:
my-service.ts import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root', }) export class MyService { constructor() { } }
動畫效能提升
更新後,以後將不再需要網頁動畫polyfill。這意味著你可以從應用程式中刪除此polyfill,可以節省大約47KB的記憶體,同時提高Safari中的動畫效能。
RxJS v6
RxJS v6也將被Angular 6使用,RxJS v6於上個月釋出。RxJS v6帶來了一個向後相容的軟體包rxjs-compat,它可以讓你的應用程式保持執行。
RxJS已重新安排,使其更具樹型動搖性,確保只有你使用的RxJS部分能放置在生產bundle中。
長期支援(LTS)
Angular表示他們正在將長期支援版本擴充套件到所有主版本中。
之前只有v4和v6是LTS版本,但為了使開發者從一個主版本更新到另一個主版本更容易,並給更多的專案充足時間來規劃更新,Angular團隊表示從v4開始,將擴大對所有主版本的長期支援。
每個主版本的支援時間是18個月,其中,前6個積極開發階段,接下的12個月是錯誤修正和安全補丁階段。
如何更新到Angular 6.0.0
請訪問更新指南,以獲取更新指導。
更新通常遵循3個步驟,請使用新ng update工具:
- 更新@ angular / cli
- 更新你的Angular框架包
- 更新其他依賴包
連結
原文連結:
https://blog.angular.io/version-6-of-angular-now-available-cc56b0efa7a4
更新指南:
Angular官方公告:
相關文章
- Angular v8 釋出!來看看有什麼新功能Angular
- Angular Directive 詳解Angular
- Angular service 詳解Angular
- Bash 5.0 釋出及其新功能
- Angular6.0正式釋出Angular
- 忘記 Angular 3:Google 將釋出 Angular 4AngularGo
- 直播預告 | 豬齒魚V1.1釋出,線上新功能詳解邀您參加
- 會員權益-新功能釋出:定時釋出博文
- Angular 4.0 架構詳解Angular架構
- HHDESK新功能釋出,歡迎大家使用
- la-admin 釋出,基於 Laravel 6 和 Angular 8 的通用後臺LaravelAngular
- 【蘋果釋出會】:蘋果釋出 iPhone 6 及 iPhone 6 Plus蘋果iPhone
- Angular6 修改啟動埠號(詳細)Angular
- 詳解資料服務共享釋出
- mysqldump匯出引數詳細解釋MySql
- Angular4.0架構詳解Angular架構
- angular五種服務詳解Angular
- Angular影片詳解 -入門01Angular
- Docker 1.12.0將要釋出的新功能Docker
- Angular 4.0.0 強勢釋出,全向後相容Angular
- Unity 6 今日釋出!Unity
- Angular(2+)動畫API用法詳解Angular動畫API
- Angular專案目錄結構詳解Angular
- Angular入門到精通系列教程(14)- Angular 編譯打包 & Docker釋出Angular編譯Docker
- 開源 CMS Ghost 3.0 釋出,帶來新功能
- Unity 5.5正式版釋出,新功能預覽!Unity
- Laravel 5.5 LTS 正式釋出!(包含新功能說明)Laravel
- Angular 4環境準備與Angular cli建立專案詳解Angular
- 詳解從 0 釋出 react 元件到 npm 上React元件NPM
- 詳解iOS打包、釋出與證書體系iOS
- Angular 6 來了Angular
- angular-ngSanitize模組-$sanitize服務詳解Angular
- Angular.js影片詳解 入門02AngularJS
- BitTorrent 客戶端 Deluge 2.0 釋出:新功能介紹客戶端
- npm publish 釋出一個 Angular 庫的時候報錯以及解決方法NPMAngular
- NG-ZORRO(Ant Design + Angular) 1.0 版本釋出Angular
- IBM Lotus Sametime Gateway 8.5 新功能詳解IBMGateway
- 一文詳解 jitpack 多渠道maven庫釋出Maven