2016-12-02 54 views
1

Angular2使用區域的概念來消除手動執行視圖更新的需要。這很好,但是,Angular2什麼時候決定做視圖更新?angular2 - Angular2是否對每個事件進行視圖更新?

看完這個article我已經看到了Angualar2幾乎在每個事件上都進行了視圖更新的概念。 即使在mousemove事件!真的嗎 ?

因爲如果是這樣,它該死的計算成本很高。

+0

這個問題可以相關http://stackoverflow.com/questions/40300635/angular-2-runoutsideangular-still-change-the-ui – yurzui

回答

2

取決於你對「事件」的含義。在Angular2中沒有事件監聽器註冊的Angular沒有更新事件。

Angular也不會僅僅因爲事件而更新,它只是運行更改檢測以查看是否需要更新。

使用ChangeDetectionStrategy和其他度量,您還可以限制應用程序的哪些部分運行變更檢測。

+0

因此,每次觸發更改檢測,鼠標移動事件被觸發?這不是很低效嗎? –

+0

正如我所說,它只會檢查是否有註冊該事件的事件處理程序。如果有事件處理程序,則處理程序可能會以某種方式更改狀態,因此檢測更改是合理的。 –

+0

也是。你有細粒度的控制你的應用程序的哪些部分應該檢查更改。默認不是最有效的設置,但仍然非常有效,但是它是入門最簡單的設置。 –