а если с самого начала надо то были сначала, шаблонизаторы типа mustache, handlebars они превращали твои шаблоны в функции которые работали со строками и из контескста вставляли данные в эти строки, поверх них фреймворки типа бэкбон ембе навешивали ивенты, коллекции, модели и т.п., еще шаблоны начала прямо в страницу вставлять в тег script с атрибутом "x-template". Потом сложность проектов начала быстро расти и люди начали думать, как ускорить и тут начали появляться фреймворки, которые пытались это решить но не так успешно как реакт решил, потом ембер поехал в сторону собственного движка glimmer, который генерит опкоды, angular поехал в другую сторону расширения HTML, но это закончилось тем что они несколько раз переписали весь ангуляр. Реакт же поехал в сторону virtual dom, diffing, reconcilation и все jsx шаблоны превращались во множество функций, которые создают дерево (используют createElement, и т.п.). Vue по части работы с DOM'ом схож с реактом и так же как и реакт имеет возможность свопить движки для рендеринга, пример react native, который инструкции для рендеринга через bridge передает а система уже рендерит компоненты.