JavaScript
ReactJS
Comments 2
0
А вы пользовались next.js? Ну или смотрели ли их способы решения вышеописанных проблем?
Есть из коробки code-splitting, у них есть своя реализация `React.lazy()`. Большой упор на SSR и нюансы, связанные с ним.

Допустим, есть новый проект (нужен SSR, хорошие показатели загрузки), в чем ваши решения отличаются от `next.js`? Можно ли объединить подходы в некоторых местах?

0
`next.js` использует внутри модифицированный `react-loadable` и контролируют процесс разбиения приложения на чанки.

Я давно перестал следить за react-loadable(да он и не меняется), и особо не смотрел в эту часть next.js, но у них должны быть проблемы с stream rendering static CSS, описанные тут.

А насчет обьединения — prerendered-component можно запихнуть в любое приложение, и совместить с любым загрузчиком. Например с React.lazy

const PrefetchLazy = lazy => {
   let value = PrefetchMap.get(lazy) || lazy._ctor();
   PrefetchMap.set(lazy, value);
   return value;
 );

 // using React.lazy
 const AsyncLoadedComponent = React.lazy(() => import('./deferredComponent'));

 <PrerenderedComponent
   live={PrefetchLazy(AsyncLoadedComponent)} 
 >
   <AsyncLoadedComponent />
 </PrerenderedComponent>
Only those users with full accounts are able to leave comments., please.