Ответ
Для передачи состояния с сервера на клиент чаще всего используют:
- REST API – JSON-ответы, например:
fetch('/api/user')
.then(res => res.json())
.then(data => setUser(data));
- GraphQL – более гибкий запрос данных:
query {
user(id: 123) {
name
email
}
}
- WebSockets – для real-time обновлений:
const socket = new WebSocket('wss://example.com');
socket.onmessage = (event) => {
updateState(JSON.parse(event.data));
};
- SSR/SSG – Next.js/Nuxt.js встраивают состояние в HTML:
<script>window.__INITIAL_STATE__ = { user: {...} }</script>
Ключевые моменты:
- Всегда валидируйте данные с сервера
- Используйте загрузчики/скелетоны во время запроса
- Обрабатывайте ошибки соединения
- Для чувствительных данных используйте HTTPS
Оптимальный выбор зависит от требований к частоте обновлений и сложности данных.