В самом простом случае, есть например форма в которой пользователь ввел логин-пароль. Из этой формы аяксом отправляем запрос на сервер, проверяем и возвращаем кусок шаблона, а сам шаблон лежит в виде файла в который передаются данные, генерится html и отдается обратно. Показываем эти данные пользователю в нужном месте. Дальше он уже работает с показанной формой. ((%
По сути тоже делает и vue, тут уже дело сложности форм и поддержки. ((%