Vue только что выпустил свою версию 2.0, и мне очень нравится ее простота по сравнению с тем, что делает Angular 2.0. Например, двусторонняя привязка данных к элементу select раздражает в Angular 2.0. Мы должны сделать это:

‹select name="user-role" [(ngModel)]="user.role"›
‹option *ngFor="let role of roles" [ngValue]="role"›{{role.name} }‹/опция›
‹/выбрать›

Он будет отображать только список ролей и назначать выбранный параметр переменной модели, но не будет автоматически выбирать один из параметров на основе текущего значения переменной модели. Таким образом, мы должны вручную выполнить итерацию из списка и установить соответствующую опцию как выбранную. Очень громоздко!

В Vue 2.0 нам просто нужно установить v-модель в переменную или свойства объекта, после чего все готово. Как это:

‹select v-model="user.role"›
‹option v-for="role in user.roles" v-bind:value="role"›{{ role.name }}‹/option›
‹/выбрать›

Простой!

Ага! Мы можем создать собственный компонент Angular 2.0, который автоматически сделает все это за нас. Но все же это требует от нас дополнительной работы, и это касается не только элемента select, но и других элементов, таких как радиоприемники и флажки. Как насчет использования сторонних компонентов? Это просто еще одна сложность. Angular 2.0 разработан очень умными людьми, но эти умные люди также создают сложные решения.

Таким образом, Vue проще и удобнее использовать для создания пользовательского интерфейса по сравнению с Angular 2.0! Vue прост в использовании. Что хорошо, я считаю, что мы можем объединить два. Используйте Vue 2.0 в качестве пользовательского интерфейса и Angular 2.0 в качестве архитектуры данных, поскольку Angular 2.0 уже предоставляет нам внедрение зависимостей, а Vue 2.0 предоставил нам работающий рендеринг на стороне сервера. Чего до сих пор нет в финальной версии Angular 2.0.