Как правильно разработать одностраничную ИС с т.з. правильного тона программирования?

Частенько приходится создавать простенькие одностраничные приложения, преимущественно с функциями работы с БД, сортировка в гриде, удаление/изменение в БД, фильтрация, печать отчета и т.п.
Структура проектов обычно следующая:
папка с js-сриптиками
папка со стилями
папка с php-контролерами
и одина html-страничка, в которой помещены ВСЕ формы проекта. И в зависимости от нажатой кнопки панели навигации отображается блок с нужной формой (js обработка (jQuery если точнее))

Напрягает именно громадная html-разметка в одном файле, сложно вносить правки в эту барахолку. На отдельные html-странички не разбить, т.к. придется передвигаться между формами гиперссылками, а это уже не есть одностраничное приложение.
Прошу совета как правильно и удобно структурировать код html-разметки, чтобы не копаться в одном огромном файле, какие технологии, библиотеки лучше использовать?
  • Вопрос задан
  • 139 просмотров
Пригласить эксперта
Ответы на вопрос 5
anton_reut
@anton_reut
Начинающий веб-разработчик
Прошу совета как правильно и удобно структурировать код html-разметки, чтобы не копаться в одном огромном файле
- Инклудить в index.php
include 'header.html.php';
include 'form1.html.php';
include 'footer.html.php';
Ответ написан
@xversus
Поставить gulp и настроить сборку одной страницы из нескольких html-файлов, например, с помощью gulp-file-include.
Для обозначенных вами целей вполне хватит и этого.
Ответ написан
Robur
@Robur
Знаю больше чем это необходимо
Возьмите любой шаблонизатор, разложите все красиво по разным файлам и пусть он вам итоговый html собирает который вы не будете трогать и заглядывать тоже не будете
Ответ написан
Комментировать
anatoly_kulikov
@anatoly_kulikov
Помог ответ? Отметь решением!
Посмотрите в сторону таких библиотек, как Vue или React.
Ответ написан
Можно держать бек и фронт часть в монорепо, но логика для бекенда и для фронта должна быть разделена.
Отдельно RESTful API, отдельно одностраничник например на Angular (https://angular.io)
Сборка и деплой бека и фронта идут отдельно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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