O Webpack 4 e o reagible loadable não parecem criar partes corretas para a renderização no servidor
Estou tentando criar um aplicativo SSR React com importação de carregamento lento. Tudo funciona bem, excetonão busca todos os pedaços necessários
Também estou querendo saber se isso está relacionado ao componente dinâmico, que é baseado na resposta do servidor
enter code here
Editar - na verdade, renderiza todos os blocos necessários, mas apaga tudo quando o lado do cliente assume e renderiza novamente
Uma vez que re-processa tudo, diminui bastante.
O analisador acontece no lado do servidor e, quando o lado do cliente assume, busca maisserver.js
const history = createHistory({
initialEntries: [urlPath],
})
// const history = createHistory()
const store = configureStore(history, {
location: {
...
},
})
const context = {}
const htmlRoot = (
<Provider store={store}>
<StaticRouter location={urlPath} context={context}>
<AppRoot />
</StaticRouter>
</Provider>
)
// pre fetching data from api
store
.runSaga(rootSaga)
.done.then(() => {
const RTS = renderToString(htmlRoot) + printDrainHydrateMarks()
const head = Helmet.renderStatic()
console.log(printDrainHydrateMarks())
res.status(code).send(renderDom(RTS, port, host, storeState, head))
}
})
.catch(e => {
console.log(e.message)
res.status(500).send(e.message)
})
renderToString(htmlRoot)
console.log(printDrainHydrateMarks())
store.close()
} else {
res.status(500).send(_err)
}
Servidor Prod
Loadable.preloadAll().then(() => {
app.listen(PROD_PORT, (error) => {
})
});
Lado do cliente
Loadable.preloadReady().then(() => {
hydrate(
<Provider store={store}>
<ConnectedRouter history={history}>
<AppRoot />
</ConnectedRouter>
</Provider>,
domRoot,
)
})
Configuração de Split Chunks
styles: {
name: 'styles',
test: /\.css$/,
chunks: 'all',
enforce: true
},
Qualquer opinião ou conselho é bem-vindo, por favor
Alguém sugeriu tentar com window.onload = () => {mas essa abordagem também parece mais lenta.