mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 00:20:04 +01:00
Basically we track a `SuspenseListRow` on the task. These keep track of "pending tasks" that block the row. A row is blocked by: - First itself completing rendering. - A previous row completing. - Any tasks inside the row and before the Suspense boundary inside the row. This is mainly because we don't yet know if we'll discover more SuspenseBoundaries. - Previous row's SuspenseBoundaries completing. If a boundary might get outlined, then we can't consider it completed until we have written it because it determined whether other future boundaries in the row can finish. This is just handling basic semantics. Features not supported yet that need follow ups later: - CSS dependencies of previous rows should be added as dependencies of future row's suspense boundary. Because otherwise if the client is blocked on CSS then a previous row could be blocked but the server doesn't know it. - I need a second pass on nested SuspenseList semantics. - `revealOrder="together"` - `tail="hidden"`/`tail="collapsed"`. This needs some new runtime semantics to the Fizz runtime and to allow the hydration to handle missing rows in the HTML. This should also be future compatible with AsyncIterable where we don't know how many rows upfront. - Need to double check resuming semantics. --------- Co-authored-by: Sebastian "Sebbie" Silbermann <silbermann.sebastian@gmail.com> |
||
|---|---|---|
| .. | ||
| art | ||
| attribute-behavior | ||
| concurrent/time-slicing | ||
| devtools | ||
| dom | ||
| eslint-v6 | ||
| eslint-v7 | ||
| eslint-v8 | ||
| eslint-v9 | ||
| expiration | ||
| fiber-debugger | ||
| fizz | ||
| fizz-ssr-browser | ||
| flight | ||
| flight-esm | ||
| flight-parcel | ||
| legacy-jsx-runtimes | ||
| nesting | ||
| owner-stacks | ||
| packaging | ||
| scheduler | ||
| ssr | ||
| ssr2 | ||
| stacks | ||
| view-transition | ||