У меня есть небольшой опыт на angularjs и react. Но я пишу не для сравнения этих проектов. Скорее для тех, кто интересуется vuejs и еще не начал использовать его в своей работе.
Компоненты - это удобно.
Повторяющийся код можно вынести в отельные компоненты. При этом легко передавать параметры между компонентами через свойства props и влиять на родителя через emmit. И все это реактивно отрисуется на веб-странице.
HTML-шаблоны, списки, условная отрисовка - можно навсегда забыть про innerHTML и кучу действий, что бы добавить или извлечь элемент из DOM. Vue это делает через v-if, v-for.
Простые примеры:
v-if
<div v-if="Math.random() > 0.5">v-for
Сейчас меня видно
</div>
<div v-else>
А теперь — нет
</div>
<ul id="example-2">Vuex — управление состоянием приложения.
<li v-for="(item, index) in items">
{{ parentMessage }} - {{ index }} - {{ item.message }}
</li>
</ul>
Невозможно обойтись без него, если делать клиент сложнее todo листа и взаимодействие с сервером. Один запрос и все приложение получило нужные данные, которые сразу отрисовались в компонентах. По моему мнению, стоить сразу начать разработку на vue с vuex.
Низкий порог вхождения - для меня плюс.
Всё что необходимо для начала работы с Vue — это знакомство с HTML и обыкновенным (ES5) JavaScript’ом.
Что мне не понравилось?
Наверное это server side rendering, точнее множество проблем, которые у меня возникли при попытке его использования. И дело не в vuejs, а в сторонних библиотеках, которые я использовал и без которых разработка затянулась бы еще на месяц. Проблема в том, что многие библиотеки пишутся без расчета на SSR. Поэтому, если нужно использовать сторонние решения и SSR, стоит обратить внимание на совместимость.