淺談web三大框架優缺點及適用場景之Angular框架

Angular是一個大而全的框架,它提供了開發一個完整應用所需的全部要素。同時,做爲背後的開發公司,Google有一個適用於Angular框架的Material Design UI庫。咱們結合Angular框架及UI庫就能完成大部分的前端開發工做。
Angular 官方還提供了開發應用所需的腳手架,包含測試、運行服務、打包等部分。前端開發人員使用官方的命令行工具就能夠快速生成Angular應用:ng new my-dream-app。在這個官方生成的項目裏,能夠直接運行和構建Angular 框架,而不須要像React或者Vue同樣,尋找一個合適的腳手架。
下面的代碼是經過Angular命令行工具Angular CLI生成的項目的依賴(package.json文件中):前端

’dependencies‘:{
"@angular/animations":"^6.0.3",
"@angular/common":"^6.0.3",
"@angular/compiler":"^6.0.3",
"@angular/core":"^6.0.3",
"@angular/forms":"^6.0.3",
"@angular/http":"^6.0.3",
"@angular/platform-browser":"^6.0.3",
"@angular/platform-browser-dynamic":"^6.0.3",
"@angular/router":"^6.0.3",
"core-js":"^2.5.4",
"rxjs":"^6.0.0",
"zone.js":"^0.8.26"
}

從這個依賴清單能夠看出,項目的主要依賴都是與Angular框架相關的內容。此外,Angular項目默認能提供的一些額外的功能有:
1.animations,用於製做瀏覽器動畫。
2.HTTP,用於處理HTTP相交的數據交互。
3.forms,用於處理表單相關的內容。
4.router,用於進行路由操做。
依賴中剩下的core-js是用來做瀏覽器兼容性(參見Angular項目的pollyfil.ts文件)的,rxjs則是響應式編程框架:Zone.js則是Angular團隊開發的用於封裝和攔截瀏覽器中的異步活動庫。
同時,在這個Demo裏,還集成有以下內容:
1.單元測試,集成運行環境Karma及單元測試框架Jasmine。
2.端到端(E2E)測試,集成端到端測試框架Protractor。
3.靜態代碼分析,經過工具codelyzer及tslint進行靜態代碼的分析。
而在其餘框架裏,與這些測試相關的內容,則須要開發人員手動來集成。在其官網https://angular.io/ 上,它不只提供了咱們須要的文檔,還有一些配套的與Angular相關的資源。
固然,大而全也意味着在編碼的過程當中須要嚴格地按照官方的規範來執行,大而全的框架出現問題的時候,要修改是不容易。
在最近二三年的時間裏,筆者一直使用Angular來做爲項目的前端框架,緣由主要是Angular的規範性。Angular不只提供了一個前端框架所須要的開發要素,還提供了一系列開發規範和指南。這些規範有些被寫在官方的文檔上,有些一配置代碼的形式存在於項目中,有些則存在於CLI(命令行工具)中。
這些嚴格的規範更適合於大公司的規模化運做,尤爲在非互聯網行業的傳統公司裏,好比金融、保險等。Angular大而全的體系方便進行項目管理,既能下降風險,又不會在制定開發規範上花費太多時間。尤爲是那些後端出身的部門經理,更容易上手Angular的框架。
好比,華爲公司在其DevCloud平臺上選擇了Angular框架,主要緣由是能夠確保開發人員嚴格地遵照規劃。另外,華爲公司還看重Typescript、組件化等帶來的前端研發效率、質量及可維護的提高。
與React相比,雖然Angular沒有官方的Web領域以外的平臺方案,可是在社區擁有一些相應的框架。如用於跨平臺原生應用開發的NativeScript,及用於混合應用的Ionic框架,它們均可以在某種程度上實現與Web平臺共用邏輯。編程

相關文章
相關標籤/搜索