Angular 7 十大特性
發布時間:2018/12/5 10:21:31 訪問次數:2794
- 51電子網公益庫存:
- CAT24C08YI-GT3
- CAT24C128LI-G
- CAT24C16C4ATR
- CAT24C16WI-GT3
- CBT3257ABQ,115
- CBTL04043A1EXJ
- CBTL1608A1UK,019
- CC2530F128RHAR
- CC2640F128RHBT
- CD40106BM96
- 2N5087G
- 2N7002
- 2N7002,215
- 2N7002ET1G
- 2SC3648T-TD-E
- 2SC5508-T2B-A
- 2V7002KT1G
- 2SC5508-T2B-A
- 2SK2313
- 2SC5508-T2B-A
angular 7.0 引入的 10 大功能。
1.cli prompts
angular cli 已經更新到 v7.0.2,添加了一些新功能,比如現在它會在用戶輸入常用命令(如 ng-add 或 ng-new)時提示用戶,@angular/material 可用于發現內置功能,如路由或 scss 支持。使用 angular 7 創建新項目時,會默認利用 cli 中的 bundle 預算。
2. 應用程序性能
angular 團隊發現 angular 開發人員會在生產環境中包含反射元數據 polyfill,但這個 polyfill 只是在開發環境中用到,為了解決這個問題,v7 的部分更新將自動從 polyfills.ts 文件中將其移除,然后將它作為 jit 模式下構建應用程序時的一個構建步驟,默認情況下在為生產環境生成構建時刪除這個 polyfill。
為了提升性能,新的應用程序將在初始捆綁包超過 2mb 時發出警告,并在達到 5mb 時報錯,用戶可以在 angular.json 文件中修改這些預算值。
3. angular material 和 cdk
angular material 和 component dev kit(cdk),angular 7 在 material design 方面進行了視覺上的改進,在 2018 年獲得了重大更新,帶來了虛擬滾動,用于動態加載和卸載 dom 的部分元素,以構建高性能的大型數據列表。此外,通過導入 dragdropmodule 或 scrollingmodule,應用程序可以具備拖放功能。
4. 虛擬滾動
虛擬滾動包
5. 拖放
@angular/cdk/drag-drop 模塊為你提供了一種通過聲明性方式創建拖放界面的方法,可以支持自由拖動、在列表中進行排序、在列表之間轉移項目、動畫、觸摸設備、自定義拖動句柄、預覽和占位符,以及重新排序列表(moveiteminarray)和在列表之間傳輸項目(transferarrayitem)。
6. angular 兼容性編譯器(ngcc)
這個編譯器用于將使用 ngc 編譯的 node_modules 轉換為與新 ivy 渲染器兼容的 node_modules。angular 兼容性編譯器將使用 ngc 編譯的 node_moduls 轉換為類似于使用 ngtsc 編譯的 node_modules。通過這種轉換,ivy 渲染引擎就可以使用一些“遺留”包。
7. angular do-bootstraphttp://pinhui.51dzw.com
它用于引導需要引導組件的模塊。angular 7 增加了一個新的生命周期鉤子(ngdobootstrap)和接口(dobootstrap)。
例如:
更好的錯誤處理
angular 7 為 @output 帶來了一個改進的錯誤處理,比如對于未初始化的屬性。
8. angular 7 中的依賴項更新
(1)typescript 3.1 支持
angular 7 已將 typescript 版本從 2.7 升級到最新版本 3.1。在使用 angular 7 時,必須使用 typescript 的最新版本。angular 使用的 typescript 版本通常會滯后一些,所以這一次就匹配了最新的 typescript 版本。
(2)rxjs 6.3
angular 7 添加了最新版本的 rxjs(6.3.3),帶來了一些令人興奮的補充和變更。這些變更帶來了性能提升,并且讓開發人員更易于調試調用棧,并改進了模塊化,同時盡可能向后兼容。
(3)添加對 node v10 的支持
angular 7 團隊現在也支持 node v10,具有向后兼容性。
(4)帶有 slot 的 angular 元素
angular 6.1 啟用了 viewencapsulation.shadowdom 功能,這對 angular 元素來說非常有用,現在支持在自定義元素中使用 web 標準進行內容投射。web 組件規范引入了一個新的標準 html 元素,即 slot。這個功能現已可用,可以通過模板來啟用組件。
然后可以像下面這樣將其作為 angular 元素:
(5)新的 ng-compiler
新的 ng-compiler 提供了加速的八階段編譯,并將大型應用程序的大小減少了大約一半。新編譯器能夠進行八階段旋轉預先編譯。大多數應用程序的捆綁尺寸預期可以大幅減少 95-99%。
(6)拆分 @angular/core
angular 的一個缺點是它的總體功能太多。它是一個大型的框架,本身會為你自動提供可能用不到的模塊,因此,angular 團隊已經將 @angular/core 拆分為至少 418 個模塊。
(7)router
增加了新的警告類型,如果你嘗試在 angular 區域之外觸發導航就會出現這個警告。如果你這樣做不起作用,angular 會將警告寫入日志(僅在開發模式下)。新版本還將導航執行上下文信息添加到 activation hooks 中。
9. 仍然沒有 ivy
angular 團隊并沒有承諾最終的時間表,但根據官方博文,ivy 仍在積極開發中,但不屬于 angular v7。我們期望在版本 8 中會有完整的測試版。你可以在 angular 官方 github 代碼庫中的 ivy renderer 問題中自行跟進。他們也希望 ivy 可以在次要版本中發布,只要經過全面測試和驗證即可。也許我們會在 angular 7 的下一個版本中看到它。
10. 文檔更新http://pinhui668.51dzw.com
angular.io 上的文檔現在更新了與 angular cli 相關的參考資料。
棄用
最新的 angular 7 版本棄用了一些東西,比如你之前使用在模板中聲明表單,這個選擇器現在已被棄用,現在應該使用
如何更新到 angular 7
如果你已經在 angular 6 和 rxjs 6 上運行 angular app,只需要更新你的 @angular cli/core 和 angular material。
或者訪問 update.angular.io 獲取有關更新應用程序的詳細信息和指南。開發人員報告說,angular 7 更新速度比以往任何時候都快,很多應用程序的更新時間不到 10 分鐘。
angular 7 其他的新功能:angular console——一個可下載的控制臺,用于在本地計算機上啟動和運行 angular 項目;
@angular/fire——angularfire 在 npm 上有了新的主頁,并為 angular 提供了第一個穩定版本;
nativescript——現在可以使用 nativescript 為 web 和移動設備構建單個項目;
stackblitz——stackblitz 2.0 已經發布,現在包含了 angular 語言服務和更多功能,如選項卡編輯;
改進了 selects 的可訪問性(mat-form-field 中的 selectelement);bazel:protractor_web_test_suite 的初始提交;compiler-cli:將 tsickle 更新為 0.29.x;
core:將 defaultkeyvaluediffers 導出為私有 api;平臺瀏覽器:將 hammerjs 延遲加載器符號添加到公共 api 中;service worker:為 sw 的通配配置提供支持。http://yushuokj.51dzw.com
angular 是最流行的 web 應用程序開發框架之一。隨著 angular 7 的發布,它為 web 開發人員帶來了更多功能,包括核心框架、angular material、與主要版本保持同步的 cli 和工具鏈,并且還有了幾個主要合作伙伴。
我們將介紹 angular 團隊發布的一些新功能。angular 7 主要關注 ivy 項目,重寫 angular 編譯器和運行時代碼,讓它變得更小、更好、更快,但 ivy 尚未準備好迎接它的黃金時刻。文章出自:原創 infoq
- 51電子網公益庫存:
- CAT24C08YI-GT3
- CAT24C128LI-G
- CAT24C16C4ATR
- CAT24C16WI-GT3
- CBT3257ABQ,115
- CBTL04043A1EXJ
- CBTL1608A1UK,019
- CC2530F128RHAR
- CC2640F128RHBT
- CD40106BM96
- 2N5087G
- 2N7002
- 2N7002,215
- 2N7002ET1G
- 2SC3648T-TD-E
- 2SC5508-T2B-A
- 2V7002KT1G
- 2SC5508-T2B-A
- 2SK2313
- 2SC5508-T2B-A
angular 7.0 引入的 10 大功能。
1.cli prompts
angular cli 已經更新到 v7.0.2,添加了一些新功能,比如現在它會在用戶輸入常用命令(如 ng-add 或 ng-new)時提示用戶,@angular/material 可用于發現內置功能,如路由或 scss 支持。使用 angular 7 創建新項目時,會默認利用 cli 中的 bundle 預算。
2. 應用程序性能
angular 團隊發現 angular 開發人員會在生產環境中包含反射元數據 polyfill,但這個 polyfill 只是在開發環境中用到,為了解決這個問題,v7 的部分更新將自動從 polyfills.ts 文件中將其移除,然后將它作為 jit 模式下構建應用程序時的一個構建步驟,默認情況下在為生產環境生成構建時刪除這個 polyfill。
為了提升性能,新的應用程序將在初始捆綁包超過 2mb 時發出警告,并在達到 5mb 時報錯,用戶可以在 angular.json 文件中修改這些預算值。
3. angular material 和 cdk
angular material 和 component dev kit(cdk),angular 7 在 material design 方面進行了視覺上的改進,在 2018 年獲得了重大更新,帶來了虛擬滾動,用于動態加載和卸載 dom 的部分元素,以構建高性能的大型數據列表。此外,通過導入 dragdropmodule 或 scrollingmodule,應用程序可以具備拖放功能。
4. 虛擬滾動
虛擬滾動包
5. 拖放
@angular/cdk/drag-drop 模塊為你提供了一種通過聲明性方式創建拖放界面的方法,可以支持自由拖動、在列表中進行排序、在列表之間轉移項目、動畫、觸摸設備、自定義拖動句柄、預覽和占位符,以及重新排序列表(moveiteminarray)和在列表之間傳輸項目(transferarrayitem)。
6. angular 兼容性編譯器(ngcc)
這個編譯器用于將使用 ngc 編譯的 node_modules 轉換為與新 ivy 渲染器兼容的 node_modules。angular 兼容性編譯器將使用 ngc 編譯的 node_moduls 轉換為類似于使用 ngtsc 編譯的 node_modules。通過這種轉換,ivy 渲染引擎就可以使用一些“遺留”包。
7. angular do-bootstraphttp://pinhui.51dzw.com
它用于引導需要引導組件的模塊。angular 7 增加了一個新的生命周期鉤子(ngdobootstrap)和接口(dobootstrap)。
例如:
更好的錯誤處理
angular 7 為 @output 帶來了一個改進的錯誤處理,比如對于未初始化的屬性。
8. angular 7 中的依賴項更新
(1)typescript 3.1 支持
angular 7 已將 typescript 版本從 2.7 升級到最新版本 3.1。在使用 angular 7 時,必須使用 typescript 的最新版本。angular 使用的 typescript 版本通常會滯后一些,所以這一次就匹配了最新的 typescript 版本。
(2)rxjs 6.3
angular 7 添加了最新版本的 rxjs(6.3.3),帶來了一些令人興奮的補充和變更。這些變更帶來了性能提升,并且讓開發人員更易于調試調用棧,并改進了模塊化,同時盡可能向后兼容。
(3)添加對 node v10 的支持
angular 7 團隊現在也支持 node v10,具有向后兼容性。
(4)帶有 slot 的 angular 元素
angular 6.1 啟用了 viewencapsulation.shadowdom 功能,這對 angular 元素來說非常有用,現在支持在自定義元素中使用 web 標準進行內容投射。web 組件規范引入了一個新的標準 html 元素,即 slot。這個功能現已可用,可以通過模板來啟用組件。
然后可以像下面這樣將其作為 angular 元素:
(5)新的 ng-compiler
新的 ng-compiler 提供了加速的八階段編譯,并將大型應用程序的大小減少了大約一半。新編譯器能夠進行八階段旋轉預先編譯。大多數應用程序的捆綁尺寸預期可以大幅減少 95-99%。
(6)拆分 @angular/core
angular 的一個缺點是它的總體功能太多。它是一個大型的框架,本身會為你自動提供可能用不到的模塊,因此,angular 團隊已經將 @angular/core 拆分為至少 418 個模塊。
(7)router
增加了新的警告類型,如果你嘗試在 angular 區域之外觸發導航就會出現這個警告。如果你這樣做不起作用,angular 會將警告寫入日志(僅在開發模式下)。新版本還將導航執行上下文信息添加到 activation hooks 中。
9. 仍然沒有 ivy
angular 團隊并沒有承諾最終的時間表,但根據官方博文,ivy 仍在積極開發中,但不屬于 angular v7。我們期望在版本 8 中會有完整的測試版。你可以在 angular 官方 github 代碼庫中的 ivy renderer 問題中自行跟進。他們也希望 ivy 可以在次要版本中發布,只要經過全面測試和驗證即可。也許我們會在 angular 7 的下一個版本中看到它。
10. 文檔更新http://pinhui668.51dzw.com
angular.io 上的文檔現在更新了與 angular cli 相關的參考資料。
棄用
最新的 angular 7 版本棄用了一些東西,比如你之前使用在模板中聲明表單,這個選擇器現在已被棄用,現在應該使用
如何更新到 angular 7
如果你已經在 angular 6 和 rxjs 6 上運行 angular app,只需要更新你的 @angular cli/core 和 angular material。
或者訪問 update.angular.io 獲取有關更新應用程序的詳細信息和指南。開發人員報告說,angular 7 更新速度比以往任何時候都快,很多應用程序的更新時間不到 10 分鐘。
angular 7 其他的新功能:angular console——一個可下載的控制臺,用于在本地計算機上啟動和運行 angular 項目;
@angular/fire——angularfire 在 npm 上有了新的主頁,并為 angular 提供了第一個穩定版本;
nativescript——現在可以使用 nativescript 為 web 和移動設備構建單個項目;
stackblitz——stackblitz 2.0 已經發布,現在包含了 angular 語言服務和更多功能,如選項卡編輯;
改進了 selects 的可訪問性(mat-form-field 中的 selectelement);bazel:protractor_web_test_suite 的初始提交;compiler-cli:將 tsickle 更新為 0.29.x;
core:將 defaultkeyvaluediffers 導出為私有 api;平臺瀏覽器:將 hammerjs 延遲加載器符號添加到公共 api 中;service worker:為 sw 的通配配置提供支持。http://yushuokj.51dzw.com
angular 是最流行的 web 應用程序開發框架之一。隨著 angular 7 的發布,它為 web 開發人員帶來了更多功能,包括核心框架、angular material、與主要版本保持同步的 cli 和工具鏈,并且還有了幾個主要合作伙伴。
我們將介紹 angular 團隊發布的一些新功能。angular 7 主要關注 ivy 項目,重寫 angular 編譯器和運行時代碼,讓它變得更小、更好、更快,但 ivy 尚未準備好迎接它的黃金時刻。文章出自:原創 infoq
上一篇:我國第四代存儲器即將量產
下一篇:C++20