2017-05-30 86 views
0

我知道AngularJS爲每個範圍變量使用$ watch,並在調用Digest循環時檢查這些手錶,然後在發生任何更改時更新DOM。另一方面,ReactJS使用狀態來檢查組件屬性的狀態,如果狀態有任何變化,那麼組件生命週期運行以更新DOM。但我不知道Angular2如何檢測組件內部的屬性更改?我發現許多文章手動比較新值和舊值,並做一些操作,如果不相同。有人可以解釋在Angular 2中發生變化檢測週期的方式嗎?Angular 2自動更改檢測週期

+0

[本條](https://hackernoon.com/everything-you-need-to-know -about-change-detection-in-angular-8006c51d206f)應該回答您的大部分問題,然後您可以詢問說明問題 –

回答

0

這裏是後由Victor Savkin,誰寫的角度變化檢測代碼的人 - https://vsavkin.com/change-detection-in-angular-2-4f216b855d4c

+0

我閱讀了該鏈接,並且我有這個問題。在按鈕點擊等瀏覽器事件上,只有該按鈕呈現的組件經歷ChangeDetectionCycle或整個組件? – Nanju

+0

我認爲整個組件樹會檢查更改,但是正如Victor所說的那樣,檢查必須非常高效,因爲它速度非常快。 – Sundar

+0

Angular爲您提供了在組件級應用變更檢測的選項,默認情況下,它始終保持打開狀態,您可以將其更改爲onPush,Angular會在輸入/輸出發生更改或單擊按鈕時檢查組件是否發生更改該組件內的事件。 – Sundar