Entenda de uma vez por todas o que é React.JS, Angular 2, Aurelia e Vue.JS

Vinicius Reis
Aug 17, 2016 · 12 min read

Disclaimer

Este não é um post de comparação, é um artigo que visa apresentar de maneira resumida o que cada uma dessas ferramentas é e quais suas principais características.


Web Components

Em primeiro lugar, web-components não é uma novidade. Mesmo antes do primeiro draft da especificação em 2012 já se falava e estudava tais possibilidades.


ReactJS

Será o primeiro a ser falado porque foi o primeiro a popularizar-se.

Virtual-DOM

v-dom é uma técnica simples e complexa ao mesmo tempo. Simples no conceito e complexa na aplicação.
Simples porque ela é apenas uma representação em JavaScript puro (memória) do DOM “real”. Se você sabe o que é DOM, sabe que a manipulação dele não é algo “produtivo”, é extremamente lento e causa vários problemas a sua aplicação.

JSX

O herói e o vilão da história. Amado por uns, odiado por muitos (?).
Na verdade JSX é uma especificação de sintaxe para escrever JavaScript como se estivéssemos escrevendo XML

Afinal o que é ReactJS?

Como eu disse, coloquei ele como primeiro da lista porque é ele que é o precursor de uma nova tendência e entendendo ele você vai entender as outras ferramentas.

Micro Libs JavaScript

Novamente, isso não é uma “módinha” e sim uma realidade.
A era da internet veio para ficar. E com ela novas demandas, basicamente tudo precisa de uma versão web (ou apenas web), sites agora são sistemas complexos, robustos e poderosos.
A linguagem oficial da web é o JavaScript, se torna necessário que os projetos tenham velocidade e facilidade, tudo precisa funcionar bem e mudar rápido. Acredito que a velocidade como as coisas mudam nunca foi tão grande.

Liberdade e facilidade

Liberdade é algo lindo, porém muitos não estão prontos para ela. É necessário maturidade para saber o que fazer com sua liberdade, essa é a maior dificuldade que React ou similares que trazem ao desenvolvedor.



Angular 2

Da água para o vinho, do fogo para água. Saindo de React temos agora o NG2. Ele é o segundo da lista pelo legado que possui (um baita legado). Mas não deixe o nome dele te enganar, esta é uma ferramenta completamente diferente do seu antecessor.

Legado

Devemos muito ao Angular. Entre inovações e problemas sérios, angular é um acidente que deu certo. Projetado para ser uma lib para criar formulários acabou se tornando o framework JavaScript mais utilizado do mundo. Muito por seu mérito, muito por seu nome, ou melhor pelo nome por trás dele, Google.

Transição

O anúncio de uma V2 em 2014 foi recebido com muita alegria pela comunidade. Porém de lá para cá as coisas tem se tornado muito confusas.
Passaram a existir dois sites em paralelo, a primeira proposta mudou completamente do que temos hoje (e continua mudando mesmo estando no seu 5º Release Candidate)

Plataforma fullstack

Não há muito o que dizer sobre o NG2 em seu estado atual, mas há coisas bem claras que posso listar aqui.

Promessas

Mesmo com um nome como a Google por trás dele, seu futuro está completamente incerto. Uns ainda apostam em sua (re)ascensão, outros já o abandonaram completamente e muitos só observam sem saber o que fazer.


Aurelia

Falando em confusão… Para quem não sabe o criador do Aurelia é criador do Durandal, que passou para o core-team do angular, afim de alavancar o projeto, porém depois de algum tempo ele saiu do projeto e criou o Aurelia.

Framework progressivo

A proposta do Aurelia é no mínimo inovadora de tão simples: Tornar sua aplicação o mais “pura” possível com o passar do tempo.

Aurelia Snow

Como eu disse, ele possui fortes influências do Angular. Boas influências, o que torna ele uma escolha produtiva para as pessoas que ainda preferem o angular way sem toda essa confusão que está sendo o NG2.
Com sua documentação bem completa ele vai fazer você esquecer facilmente todos os problemas que as documentações angular possuem.


Vue.JS

Vue.JS está por último por ser a sensação do verão. Brincadeiras a parte, Vue é a ferramenta que tem mostrado grande potencial, conquistando todos que a testaram. Vem criando uma comunidade bem dedicada no Brasil e no mundo.

Biblioteca para criar componentes

Vue e React possuem muitas semelhanças, a principal é o foco, ambas são para criar web-components, sendo assim Vue é leve, objetivo e componetizado.

Vue.js != React

Eles podem ter muitas semelhanças, porém possuem muitas diferenças também. A sintaxe de um componente React é extremamente livre e pura, podendo ser confusa para muito desenvolvedores. Isso não é algo ruim, porém essa liberdade pode gerar conflitos em equipes e elevar a curva de aprendizado dele.

my-component.vue

Vue e V-DOM

Vue.JS está em franca evolução e adoção. A partir da versão 2 ele passa a ter suporte a Virtual-DOM assim como o React, e com isso passa a ser 2x a 4x mais rápido que a versão 1.

Vue.JS e a comunidade

Como dito antes Vue é um concorrente recente. Apesar do projeto já existir a alguns anos, sua versão 1 saiu em Outubro de 2015, e é diferente das outras ferramentas, não possui uma grande empresa apoiando ele.


F.A.Q.

O que é Flux, Redux e Vuex?

Redux e Vuex são implementações do Flux. Flux é um modelo de arquitetura para aplicações component-based. Em aplicações desse tipo é muito fácil cair em algo chamado event-hell, esse modelo visa resolver isso.
Não possui nenhuma ligação com back-end.

TypeScript

TypeScript ou TS é um superset do javascript. Ele estende a linguagem adicionando novas funcionalidade a ela. Entre eles o suporte a tipos.

Router

Aplicações SPA precisam de uma maneira de “trocar de página” chamamos isso de rotas, e o Router é o responsável por isso. Em aplicações component-based as rotas são ligadas a componentes.
Não possui nenhuma ligação com sistemas de rotas do back-end.

ES6 e/ou ES2015. O que é EcmaScript?

EcmaScript pode ser considerado o nome oficial do Javascript. São as especificações Ecma que definem como o javascript deve funcionar em sua sintaxe e funcionalidades.
ES6 era o nome dado a nova versão do EcmaScript, porém com releases anuais o nome correto passou a ser ES2015.



that’s all folks

by Vinicius Reis

Meus posts

Vinicius Reis

Written by

Fiquei sem meus peões, meu cavalo, minha torre, meu bispo… E até a rainha… Mas ainda é muito cedo para um xeque-mate. Roy Mustang — Fullmetal Alchemist

by Vinicius Reis

Meus posts