Afinal, o que é esse negócio de ReactJS e por que todo mundo está falando dele??

Se você é desenvolvedor certamente já ouviu falar em ReactJS ou no famoso React Native. Mas afinal, o que é o React ?

React é uma biblioteca flexível para criação de interfaces (UI) feita em JavaScript. Ok, se você é um iniciante pode esta meio perdido nessa frase. Então vamos falar do que faz um dev front-end.

Um Dev front-end constrói interfaces amigáveis para o usuários através usando o navegador. Em outras palavras e a muito grosso modo, criamos sites. Mas as vezes esse sites têm níveis de complexidades diferentes. Por exemplo, não é um desafio muito grande, para um dev experiente, desenvolver um site institucional de uma empresa. Pode ter alguns efeitos complexos e tudo mais mas é algo relativamente pequeno, até por que não faz sentido investir tanto em um site. Mas a web não é feita de sites institucionais. Ela é feitas de buscadores, redes sociais, painéis de controles (dashboards) e muito mais.

Fica mais claro que o desafio muda completamente. A barra sobe muito quando falamos em desenvolver um e-commerce ou uma rede social. Além do nível de complexidade também aumenta o esforço envolvido. Se você reparar bem, existem vários elementos que se repetem em vário sites e construir isso tudo na mão, usando somente a tríade HTML, CSS e JS fica quase inviável de tamanho que é o esforço.

Para facilitar a nossa vida como desenvolvedor algumas empresas como o facebook, que também buscava resolver problemas internos, criaram ferramentas como o React.

Como funciona o ReactJS ?

Podemos abstrair tudo no React como componentes. Apesar de não ser uma regra, um componente tem um estado, uma função e um formato. Acho que a melhor forma de exemplificar isso é pensar em um botão. Vamos tomar como exemplo o botão curtir do instagram (que é feito em React na sua versão web), o botão tem um formato, não estou falando da parte visual mas sim da parte lógica, algo como:

<Button class=”like” />.

Esse botão também tem 2 estados: o ativo e inativo ou se você preferir, curtir e não curtido.
Por último esse botão tem uma função. Nesse caso é adicionar mais 1 curtida em uma determinada postagem.

Dessa forma temos um componente do botão curtir que foi escrito uma única vez e pode ser reaproveitado em diversos lugares do site ou quem sabe em até projetos diferente se você resolver transformar esse botão em uma lib.

Em que momentos posso usar o React JS?

No geral o ReactJS se encaixa bem em qualquer projeto. Você pode usar ele no seu site institucional ou na rede social que você deve está criando agora. Porém, se fosse dar uma dica para o Raphael do passado eu diria para ele investir o React em web App. O ReactJS funciona muito bem para construir Apps. Não é atoa que uma versão dele foi criada para construção de apps nativos mas isso é um outro artigo que quero tratar com vocês.

Eu investiria o React criando Apps simples como pequenos geradores de códigos, tipo um gerador de sombras em CSS, gerador de border-radius CSS, um player de áudio consumindo APIs de outros apps, calculadoras, pequenos jogos de quiz, apps para gerenciar tarefas, gerenciar renda etc…

Você consegue tirar um proveito absurdo do React com essas pequenas aplicações e em alguns caso consegue até rentabilizar com anúncios.

O ReactJS e o React Native são a mesma coisa ?

Não, eles não são a mesma coisa mas são tão parecidos que quase não dá pra notar a diferença. Nem tudo que dá pra fazer no React Native dá pra fazer no ReactJS e o contrário também é verdade.

O React Native tem algumas peculiaridades que diferem da versão web, mas em muitos casos você vai conseguir aproveitar blocos de código inteiro em ambos os lados.

Então o React só serve para fazer Apps?

Não, como falei no início. O React foi criado para agilizar o desenvolvimento de interfaces. Ele é tão bom nisso que novas versões foram criadas para resolver problemas específicas. Um bom exemplo é o React Native que serve para construir Apps Android e IOS. Outro exemplo é React Blessed, você consegue criar telas LINDAS no TERMINAL !!!

react-blessed: Exemplo de interface para terminais

Esse é um exemplo de interface para terminais criado com ReactJS

Conclusão

O React é uma baita ferramenta que vai te dar grande oportunidades. Talvez o mais importante é a facilidade que vocë vai ter de migrar de uma tecnologia para outra usando esse lib (da web para mobile ou vice versa). O momento de aprender a programar usando JavaScript é agora e com as melhores tecnologias do mercado. Fica ligado, se inscreva na newsletter que em breve teremos muito mais sobre o assunto.

Conta aii nos comentário o que voce acha do React.