Angular
Vue
React
EXT
Todos são componentizados, ou seja, recebem um input e renderizam algum componente na tela com esses parâmetros.
React e Vue são excelentes ao tratar componentes mais simples
Angular exige conhecimento da sintaxe específica para usar algumas funcionalidades (ngIf ou ngFor)
Ponto importante aqui é notar, qual é mais poderoso, HTML ou JS?
VUE usa o conceito um pouco diferente, chamado "Single File Component", onde os templates, scripts e estilos ficam armazenados em apenas um arquivo, mas em seções diferentes
Angular e EXT são frameworks, são a "solução completa" com seus conceitos fortes e estabelecidos, não é preciso procurar outras coisas compatíveis, é pegar e usar.
Vue e React são mais voltados a bibliotecas, são universalmente flexíveis, e podem ser pareadas com todo o tipo de biblioteca. Contudo... com grandes poderes vem grandes responsabilidades.
Angular, EXT e React caem em vários conceitos que são necessários aprender para utilizar plenamente as ferramentas, você precisa conhecer JS para aí aprender o framework X ou Y.
VUE elimina essa barreira com simplicidade, facilidade de uso e clareza de código sendo o mais intuitivo dos 4, todas as coisas são bem diretas.
One-way vs. Two-way binding
Componentes descrevem a interface em qualquer momento do tempo. Quando os dados mudam, o framework precisa re-desenhar tudo o que for necessário para que os dados permaneçam sempre atualizados.
Angular utiliza por padrão o two-way data binding, enquanto os outros por padrão utilizam one-way (mas podem ser adaptados se necessário)
Angular traz o conceito de MVC integrado, enquanto os outros são mais V, e se necessário o desenvolvedor precisa criar o M e o C.
Algumas bibliotecas mais ambiciosas tentam tornar mais acessível o desenvolvimento de apps mobile apresentando algumas propostas, notoriamente React e Angular.
Para soluções nativas o Angular tem o NativeScript e o React tem o React-native.
Para uma solução híbrida o Angular tem o Ionic com o Cordova e o EXT apresenta suporte na versão 6.
Angular exige conhecimento de Typescript, aprender como o framework funciona e conhecer os atributos adicionais das tags. Pode ser uma curva grande de aprendizado.
React é flexível, utiliza ES6 o que é bom, porém pouco difundido e a sintaxe do JSX é de fácil compreensão, mas exige conhecimento e decisões de arquitetura para utilizar React em todo seu potencial
Vue é o mais simples de todos, com uma baixa curva de aprendizado e facilitando a entrada de novos desenvolvedores no projeto.
Ext embora tenha um fluxo simples, ele exige acompanhamento constante de documentação devido ao grande volume de componentes e é desejável entendimento da estrutura do framework.
Se gosto de TypeScript: Angular
Eu gosto de flexibilidade e grandes ecosistemas: React
Eu gosto da ideia de "Tudo é Javascript": React ou Ext
Eu gosto de código limpo e baixa curva de aprendizado: Vue
Sozinho ou em um time pequeno: Vue ou React
Aplicações grandes: Angular, React ou Ext
Aplicações mobile: React
Trabalho com designers e quero um HTML limpo: Angular ou Vue
Gostei do Vue mas tenho medo do ecossistema limitado: React