Задать вопрос
@Hovo_Varosyan

Как и где сохранять данные в next js?

мне нужно получить данные пользователя в next, но я не понимаю где его хранить, чтобы оно было доступно в 4-5 страницах и я его получал один раз, я хотел сделать это через redux или mobx но они требуют настройки на стороне сервера, кроме этого я не понимаю сохранится ли получение данные на клиенте , или каждый раз из за ssr оно будут удаленно?
  • Вопрос задан
  • 40 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Проблема в том что в nextjs а используется подход stateless (а скорее всего http rest), когда каждый запрос клиента это новый запуск приложения, а состояние нужно будет заново восстанавливать и естественно где то хранить, например в базе данных.

Для того что бы сервер не приходилось настраивать, используй базу данных в файле, наилучшим ее представителем является sqlite. Это будет просто файл, который максимум нужно будет оградить от публичного доступа, разместив вне каталога веб сервера.

Еще момент, состояние можно хранить на клиенте, это потребует от него поддержки javascript. Особенно если эти данные исключительно вопрос интерфейса и внешнего вида но не бизнеслогики.

Если хостинг не позволяет хранить файлы и сам по себе является stateless, есть отвратительный но используемый метод, который используется, в тч.. майкрософтом, когда пишешь веб приложение в visual studio (может уже изменили?). Храни состояние в сетевых пакетах, т.е. cookies (пользователь их сможет увидеть и изменить, помни об этом). Так же можно передавать данные, добавляя их как GET, добавляя к каждой ссылке информацию в виде параметров, но в этом случае эти данные будет видеть пользователь прямо в ссылке и это нехорошо для SEO. Так же не советую использовать для этого POST запросы, это скроет состояние от пользователя но помешает ему нажимать кнопку 'Обновить' в браузере (будет выскакивать непонятное многим сообщение подтверждение повторной отправки данных).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы