我知道mapstatetoprops正在將我們的Redux應用程序狀態映射到我們的React組件道具,但是我不完全理解reducer返回新狀態後面發生了什麼 - 如何觸發重新呈現組件道具映射到應用程序級別的狀態?如何更新reducer中的狀態觸發組件的重新呈現?
在純粹的React中,setState觸發重新渲染是否正確?通過Redux發生了什麼類似(或相同的事情)?
我知道mapstatetoprops正在將我們的Redux應用程序狀態映射到我們的React組件道具,但是我不完全理解reducer返回新狀態後面發生了什麼 - 如何觸發重新呈現組件道具映射到應用程序級別的狀態?如何更新reducer中的狀態觸發組件的重新呈現?
在純粹的React中,setState觸發重新渲染是否正確?通過Redux發生了什麼類似(或相同的事情)?
Redux
和React-Redux
都採用淺層平等檢查。
特別是:
Redux's combineReducers
效用淺檢查引起的,它調用減速器參考變化。
React-Redux's connect
方法生成組件,淺顯地檢查對根狀態的引用更改,並使用return values from the mapStateToProps
函數查看包裝的組件是否實際需要重新呈現。這種淺層檢查需要不變性才能正常工作。
那麼當您使用redux「connect」函數創建組件時,整個重點就在於您連接到redux狀態的幕後,並且擁有狀態更改的偵聽器。
因此,您創建了一個簡單的組件,可以從道具獲取其值,但這些道具是通過使用「mapStateToProps」連接從狀態獲取的。
從來沒有潛入到redux-react連接函數中,但是如果你想要,你一定會繼續前進,看看它究竟做了什麼。
但重點是我上面解釋的。