Сам долго разбирался в этом вопросе и более-менее понял суть.
Эти фреймворки используются для шаблонизации фронтенда и оптимизации работы сложных одностраничных приложений (таких как личные кабинеты, админ-панели и тд).
Основные преимущества:
1. Возможность создания сложного сайта без перезагрузки страницы. Пример - соцсети. Причем можно сделать и чпу-ссылки и хлебные крошки, все как полагается.
2. Скорость работы с DOM в разы выше, чем с jq. Плюс в них оптимизирована работа с оперативной памятью. По идее можно не думать об утечках.
3. Использование компонентов.
К примеру, создал компонент "Кнопка" (
<app-btn></app-btn>
), в отдельном файле прописал его свойства, html-структуру, css и javascript-поведение. И теперь можно его использовать, просто прописав этот тег. Причем в него сразу же можно передавать свойства, к примеру текст кнопки
<app-btn text="Заказать"></app-btn>
.
На счет поисковиков - можно поставить серверный рендеринг на компоненты, которые важны для индексации (например Vue.js + vue-server.js). И на выходе получишь крутое, быстрое, индексируемое приложение.
Посмотри, например сайт
тинькофф. Там используются все эти новомодные вещи. Сайт реально быстрый. А на него заходит около 10 млн человек в месяц