Еще один вариант реализовать компонентный (a-la React/Vue) подход в чистом нативе.

Зачем - натягивание и кастомизация CMS или готовых сервисов, где слишком многое прибито гвоздями, и развернуть SPA здорового человека не позволят.


Как:



  1. Пишем <template>-ы с разметкой нужных нам глубоко кастомных элементов, закидываем их в JSON

  2. В точке монтирования подгружаем через fetch джсон с шаблонами, создаем временный элемент и через него (точнее, через innerHTML) цепляем все эти темплейты в head исходной страницы

  3. Пишем классы (ну или по-старинке через prototype) функции, которые вытягивают из head шаблоны, насыщают их обработчиками и монтируют в DOM


Это я к тому, что мы уже начали новый проджект с авторизацией через keycloak, а там возможности по визуальной кастомизации достаточно ограниченные. И поскольку каждая стадия авторизации - это отдельная страница со своим url-ом, то SPA тут никак не проканает.

Ну и классы из п3. можно будет потом закатать во вьюшные компоненты, а готовую часть темплейта для SFC скопипастить напрямую из джсона с шаблонами. А еще я понял, что реально соскучился писать код на нативке