iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
Modern Web

angular專案開發指南系列 第 2

Angular 框架的特性

  • 分享至 

  • xImage
  •  

特性

以下列出一些主要的特性,提供大家決定是否選用Angular作為開發工具的參考。

  1. 由Google開發維護的前端框架,官方文件針對配置與開發方式都有詳細的說明,社群龐大,有問題可在網上找到解決方法。
  2. 良好的應用程序結構,關注點分離式開發,適合大型專案與多人開發合作。
  3. 雙向綁定特性方便元件實作表單的CRUD處理。
  4. 大量使用雙向綁定特性需要注意效能影響。
  5. 服務使用Java的依賴注入概念提高元件覆用度。
  6. 內建豐富的服務、指令與管道等工具方便調用。
  7. 原生配置測試框架方便專案進行自動測試。
  8. 搭配Typescript開發,可作型別檢查與使用類型、泛型、枚舉等物件導向特性。
  9. Typescript墊高學習曲線,但其實Typescript可漸進式學習一開始寫js也可以。
  10. 框架包山包海墊高學習曲線,其實官方文件的確複雜,建議初學者根據官方教程做一次,其他功能有用到再查就好,不需要全部學會。
  11. Angular框架相對會比較難Debug。
  12. 使用其他其它JavaScript工具庫,需要另外封裝為Angular服務。

Change Detection機制

在AngularJS時代雙向綁定會觸發稱為Dirty Checking的機制,簡單來說雙向綁定這個特性簡化了我們的程式碼編寫方式。即當View中有資料發生了變化,這個變化不用另外做處理會自動地反應到scope上,為了達到這個效果Dirty Checking迴圈可能需要不只一遍的檢查是否有models發生了變化,用的不好會成為效能殺手。
Angular是由NgZone自動控制Change Detection機制,有效避免不必要的Dirty Checking但還是要注意,如大量雙向綁定造成的資料流混亂,渲染效能低下等問題。

熟悉Change Detection機制有機會可以優化渲染頁面的速度與效能,如同開手排車。

當年AngularJS特有的watcher機制可能導致效率極低的Digest Cycle,因此以前常有不要在Angular中使用jquery的說法。


結論

一般來說Angular比較適合的專案是構建基於表單的CRUD(建立、查詢、刪除、更新)的相關應用,但其實前端框架只是工具,用的好就可以發揮框架的價值,其他類型專案也可以用,只是比較容易誤用功能導致APP效能低下。建議團隊中資深開發成員在工作流程中嚴格執行代碼審查機制,避免其他成員因為框架特性不熟而誤用,使用Angular框架累積的技術債,會在專案長大之後帶來嚴重的問題。

下一篇我們從建立Angular新專案開始順便介紹一下每個檔案的功能。


參考

深入 Angular 的 Change Detection 機制


上一篇
Angular 專案從零開始
下一篇
Angular 檔案結構介紹
系列文
angular專案開發指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言