Timing of effects
還沒有人認領這個 Issue。
- 主要語言
- JavaScript
- 星號
- 11.8k
- 分支
- 7.9k
- 平均合併
- 1 天 11 小時
- 30 天內合併 PR
- 11
描述
Although
useEffectis deferred until after the browser has painted, it's guaranteed to fire before any new renders. React will always flush a previous render's effects before starting a new update.
Is this true in both concurrent and non-concurrent mode. It would appear intuitively that these two call-sites in non-concurrent mode would be deterministic:
ReactDOM.render(<Foo>, container)
ReactDOM.render(<Foo>, container)
That is it would invoke a new render before the effect in the first render has been invoked.
If so would it make more sense to specify it is only in relation to effects i.e previous effects are guaranteed to run before future effects.
As it stands, it looks appears as though the "render" call-site is non-deterministic in non-concurrent.
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
先檢視文件中關於 effects 會在新的 renders 之前被 flush 的引述,接著將其措辭與兩個 ReactDOM.render 呼叫位置,以及 concurrent 和 non-concurrent 的行為進行比較。完成的標準是文件清楚說明受支援的保證,並釐清該保證是一般適用於 renders,還是只適用於 effect 的順序。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- javascript, react
- 領域
- documentation
- Issue 類型
- 文件
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100