2017-08-21 72 views
3

角度2如何執行變化檢測默認策略?我已經經歷了一些與變化檢測有關的帖子,並得到了一些細節,比如'angular2爲每個組件創建變化檢測器'。使用CD類的角度2變化檢測

現在例如如果我有4個組件(comp1,comp2 comp3 & comp4)和我更改comp4屬性,所以更改檢測將通過所有組件或單個組件執行?

您能否提供一些代碼教程鏈接相關的上述信息?

+1

歡迎來到StackOverflow。這個問題是關於SO的話題,因爲它是關於尋求外部資源而不鼓勵的。對於直接的答案來說,這個問題相當廣泛如果你可以讓它更具體,它可以得到回答。 「我改變comp4財產」是不夠的信息。它還取決於這些組件是如何相關的(如果有任何綁定,共享服務......)理想情況下,您會創建一個Plunker來展示情況,然後提出具體的問題。 Plunker提供了一個現成的Angular 4模板。 –

回答

1

下面是詳細的文章,這將有助於您瞭解更改檢測:

另見this answer

現在,例如,如果我4個部件(COMP1,COMP2 COMP3 & COMP4)和 我改變COMP4屬性,以便變化檢測將通過 所有組件或單個組件來執行?

如果更改comp4屬性一些異步opertation像setTimeout的結果,改變檢測將從根級別組件,下至兒童運行。所以你將會改變所有組件的檢測。

如果某些組件設置了ChangeDetectionStrategy.OnPush,如果輸入綁定沒有改變,它們將被跳過。

+1

另請參閱https://angular-vv2r5w.stackblitz.io/ – yurzui

+0

@yurzui,新年樹) –

+0

帶有「OnPush」策略的組件將被檢查一次,然後將等待一些條件被檢查https:// angular-opcxwh.stackblitz.io/例如點擊12將打開分支檢查 – yurzui