2016-05-20 44 views
1

我已經與Angular 1.x合作過,現在開始使用Angular 2.現在我不知所措,看到我們必須添加到index.html中的js腳本的數量才能開始。不是Angular 2對這麼多javascript文件的依賴妨礙/影響它的性能?

我的意思是,即使我不包括角(及其組件的)自己的js文件,還有"systemjs""es6-shim""reflect-metadata""rxjs""zone.js"

我不停的聽到角2比角1

快2〜3倍我用AngularJS 1.x和也ReactJS並沒有在那裏我看到了這麼多的依賴於其他腳本。

我不明白的是 - 難道所有這些腳本文件都會讓瀏覽器變慢嗎?他們不要在瀏覽器的JS引擎上創建額外的負載嗎?

我們是否假設我們只在角2中開發目標瀏覽器?

請問誰能解釋一下?


編輯:

我想明白通過大量的JavaScript文件的性能影響。

你能否拒絕/拒絕Angular 2需要更多JS文件才能開始工作而不是Angular 1的事實?

+0

爲什麼Downvote?好吧,如果你願意的話,可以低估,但我仍然想知道答案。所以,downvote與評論plz :) – TruthSeeker

回答

1

的角度團隊正在構建工具(部分在RC已經包含)可以解決所有這類東西之前,應用程序交付給瀏覽器

  • 腳本內聯
  • CSS內聯
  • CSS重寫ViewEncapsulation.Emulated(默認)
  • HTML內聯
  • 組件的延遲加載取決於路由配置
  • 通過生成的代碼
  • 替換聲明綁定...

在發展的角度應用程序必須做出幾十到幾百的HTTP請求來獲取所有資源。構建步驟之後,這些最小化到絕對必要。

2

那麼有更多的文件加載可能會增加第一次加載頁面,並在開始時的內存消耗(當然不是在那麼結束)顯然。

但是,一旦你通過了,這幾乎與性能無關。

此外,通過使用專門爲其目的進行開發和優化的庫,角開發人員不必重寫他們自己的代碼部分,這可能比現有的和廣泛使用的代碼更少/更優化。

我們來舉一個簡單的例子:underscorejslodash。通過將它包含到瀏覽器中,您可能會添加一些時間加載,但通過使用提供的功能,您的代碼可能會更快,因爲當涉及到那些庫的用途時,有很多關於javascript性能的技巧。

這並不是因爲你加載了那些庫,你會在每個javascript循環中執行完整的代碼,對於angularJS2和他的所有庫也是如此。

最令人討厭的事情可能是需要,不僅要學習angularJS2,還需要一些其他組件來獲取有關如何正確使用angularJS2進行編碼的權利,從而增加學習曲線。

在你展示的文件當中:es6-shim是爲了讓angularJS2兼容no-es6瀏覽器,在IE8上使用angularJS 1.x的時候也是這樣,這個沒有什麼新東西。