[英]How does Ngrx triggers Angular's Change Detection in OnPush strategy
[英]Angular 5.0 change detection strategy VS React's change detection strategy
我理解變量 檢測在Angular 5.0中是如何工作的。
有人可以幫助我理解React中的相同功能以及它與Angular的不同之處是什么?
React和Angular的變化檢測是不同的,但它們有一個非常重要的共同點 - 從內存(而不是從DOM)中獲取當前和先前狀態的差異,並僅渲染已更改的內容。
在Angular中,在高級別上它的工作方式如下:
注意:請注意,如果使用ChangeDetectionStrategy.OnPush ,則在樹遍歷期間可能會省略某些組件及其后代。 它可以是很好的優化。
在React中它看起來像這樣:
setState
組件開始。 注意:類似於Angular的ChangeDetectionStrategy.OnPush,在React中我們有類React.PureComponent 。 我們可以使用這個類來避免不必要的變化檢測。
當然還有很多差異,但在高層次上,我認為這些是最重要的。
反應變化檢測與Angular大致相同,除了三件事:
1) 何時開始:每當調用組件的setState方法時,diffing就會開始(而每當觸發Dom事件時,無論何時運行setInterval / setTimeout回調,每當運行ajax回調時,Angular都會進行差異)
2)從哪里開始: diffing從調用了setState的組件開始,然后是子組件,從層次結構開始(而Angular從最頂層組件開始)
3) 要比較的內容: diffing將當前HTML的虛擬DOM與狀態更改后的虛擬DOM進行比較。 (而Angular使用模板中使用的數據綁定值,用於比較之前和之后)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.