簡體   English   中英

什么是React-Redux環境中的“撕裂”?

[英]What is “Tearing” in the context of the React-Redux?

React-Redux 6.0版提到:

在版本6中,所有組件從上下文中讀取相同的當前存儲狀態值,這意味着樹將是一致的並且沒有“撕裂”。

我認為這是有益的,但我想更好地理解“撕裂”在這種情況下的含義,並且我想了解它們所概述的新方法實際上如何減少“撕裂”,如果有人可以詳細說明的話。

我是Redux維護者,我寫了那段話。

這與React團隊的Andrew Clark提出的一個問題一樣,當與React即將推出的“並發模式”一起使用時,這是外部狀態管理工具的一個潛在問題。

在並發模式下,React將能夠暫停樹中的渲染過程,並在以后繼續計算樹的其余部分。

如果樹中的組件正在讀取外部值,並且該值在React的渲染暫停時發生更改,則樹中的某些上層組件可能已使用外部值1進行渲染,而某些后續組件可能已呈現使用外部值2.這將導致渲染輸出不一致,因為樹的不同部分根據同一渲染過程中的不同值確定其行為。 這是“撕裂”。

使用createContext for v6背后的部分想法是,由於React確保給定的渲染過程在任何地方使用相同的上下文值,因此不會有撕裂的可能性。

v6實現確實有效,但在某些情況下它並不像我們希望的那樣高效。 我們目前正在努力提出一個不同的內部實現,可以追溯到使用直接訂閱 這可能意味着撕裂是一種可能性,但此時我們需要坐下來等待React團隊完成將並發模式放在一起,然后才能花時間看看問題究竟是什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM