Отражает ли React загрузку InnerWrapper после загрузки OuterWrapper, или они оба загружаются одновременно? В частности, откладывается ли рендеринг откатов второй приостановки после загрузки первого компонента.
Рендеринг второго Suspense
будет отложен до OuterWrapper
. Все, что вы передаете OuterWrapper
как детям:
<Suspense fallback={<SecondLoader/>}>
<InnerWrapper>
{content}
</InnerWrapper>
</Suspense>
Передается OuterWrapper
как props.children
, когда оно будет отображено. Таким образом, рендеринг второй Suspense
может происходить только тогда, когда OuterWrapper
выбирается и выполняется.
Кроме того, в случае, когда InnerWrapper
загружается с отложенной загрузкой, он будет выбран после того, как OuterWrapper
будетоказаны. Таким образом, в этом случае оба компонента выбираются не параллельно, а один за другим.
Я создал пример, чтобы показать его здесь: https://glitch.com/edit/#!/dusty-ghoul
вы можете играть с задержкойпосле чего сценарии будут отправляться клиенту путем изменения параметра delay
здесь:
// public/index.js
const OuterWrapper = React.lazy(() => import("./OuterWrapper.js?delay=5000"));
const InnerWrapper = React.lazy(() => import("./InnerWrapper.js?delay=1000"));