@devdev10111

Как в реальных проектах хранят контанты, текста, телефоны и прочее?

привет! делаю сайт на next.js, столкнулся с таким вопросом: на сайте есть какие-то константные значения:
  1. Контакты в шапке (телефон, мейл, адрес)
  2. Структура меню (Главная О нас Блог и тд — названия пунктов меню и их href-ы)
  3. Текста на страницах О Нас, Как добраться и тд
  4. и много подобного контента

как в реальных проектах хранятся все эти данные (по трушному)?

выявил несколько способов:
  1. указывать весь статичный контент непосредственно в jsx разметке. среди минусов вижу перемешку контента (хоть и статичного, но все же) с логикой/разметкой приложения
  2. контент вынести в словарь (js объект)/json и в разметке уже по ключу вставлять нужный контент. например DICTIONARY['phone'], DICTIONARY['pages']['about']['text']
  3. (по аналогии с прошлым пунктом): хранить весь контент в бд, чтобы можно было его редактировать из админки, без необходимости заново билдить приложение (такой вариант пока избыточен, пилю MVP)


коллеги, кто работает над крупными проектами, расскажите, как это реализовано у вас?
  • Вопрос задан
  • 295 просмотров
Пригласить эксперта
Ответы на вопрос 3
myks92
@myks92
Нашёл решение — пометь вопрос ответом!
У вас вопрос про данные, а не про константы. Где хранить данные зависит от самих данных!
  1. Если нужно гарантировать их безопасность (например, персональные данные), то без хранилища не обойтись.
  2. Если нужно их менять не через код, то тоже нужна веб панель и хранилище.
  3. Если какие-то данные повторяются, то эти данные можно выносить в какие-то js/json файлы.
  4. Настройки проекта, зависящие от окружения, выносят в переменные окружения.
  5. Статические страницы вроде о нас и контакты меняются не часто, поэтому можно оставить их прямо в файлах.
  6. Требуются ли переводы контента и т д

Это лишь часть описанных вариантов. Как бы вынес я, исходя ваших пунктов:
1. Контакты в шапке (телефон, мейл, адрес) - если только там оставить прямо в коде. Если дублируются вынести в отдельный файл и его подключать.
2. Структура меню (Главная О нас Блог и тд — названия пунктов меню и их href-ы) - внутри компонента меню, если нет требований менять из админки и переиспользовать компонент. В противном случае - хранилище или json файл.
3. Текста на страницах О Нас, Как добраться и тд - база данных или прямо html кодом статично.
Ответ написан
Комментировать
vabka
@vabka
Токсичный шарпист
Зависит от задач.
Самое простое - действительно хранить в разметке.
Для удобства, особенно если нужно текст переводить на другие языки - можно в объект/отдельный файл вынести.
Если нужно, чтобы в будущем этот текст можно было редактировать без привлечения разработчика - тогда выноси в БД и добавляй какой-нибудь редактор.
Ответ написан
Комментировать
morsa
@morsa
Frontend-разработчик
Я стараюсь использовать i18next для хранения текстов.
Во-первых весь текст хранится в одном месте. Если нужно что-то поменять, то меняется в "два клика".
Во вторых, если нужно будет сделать локализацию, то очень просто это реализуется с помощью этого фреймворка.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы