Управление состоянием в SSR в основном предназначено для предварительной загрузки состояния, из которого выполняется гидратация на стороне клиента.
Преимущество этого заключается, например, в том, что вы хотите загрузить что-то из базы данных при загрузке первой страницы, тогда вы можете сделать это на сервере, отображая значения в представлении, возвращаемом браузеру. Поэтому клиентской стороне не нужно загружать асинхронный c из бэкэнда.
Вот пример сокращения
function renderFullPage(html, preloadedState) {
return `
<!doctype html>
<html>
<head>
<title>Redux Universal Example</title>
</head>
<body>
<div id="root">${html}</div>
<script>
// WARNING: See the following for security issues around embedding JSON in HTML:
// https://redux.js.org/recipes/server-rendering/#security-considerations
window.__PRELOADED_STATE__ = ${JSON.stringify(preloadedState).replace(
/</g,
'\\u003c'
)}
</script>
<script src="/static/bundle.js"></script>
</body>
</html>
`
}
Если вы планируете дать этому go будьте осторожны с JSON.stringify(preloadedState)
, это уязвимость XSS