React JS é o assunto do momento no Brasil e Europa, nos EUA já faz sucesso a mais de um ano o framework do Facebook apenas confirma a sua força este ano.
React JS é a tecnologia chave requisitadas nas principais vagas de front aqui na Europa tirando o espaço do Angular ainda bastante forte. Como parte dos meus estudos traduzirei alguns artigos e tutorias que ando a ler. O primeiro deles é uma breve introdução utilizarei como base o “Why React?” e “Getting Started“.
Por que React?
React JS é uma biblioteca JavaScript para criar interfaces do Facebook e Instagram. O React foi criado para resolver o problema: criar largar aplicações com dados que mudam a cada segundo.
React JS é Simples
Simplesmente expressar como a sua aplicação deve olhar para qualquer ponto no tempo, e React vai automaticamente administrar todas atualizações da sua interface quando os seus dados mudam.
Declarativo
Quando os dados mudam, React conceitualmente dispara o botão refresh
e sabe quando atualizar os dados que mudaram.
Construindo ambiente “componentizável”
React é todo construído sobre componentes reutilizáveis. Na verdade, com React a única coisa que você precisa é construir componentes. Visto que eles são encapsulados, componentes podem fazer o seu código reutilizável, “testável” e com fácil separação de interesses.
Iniciando os trabalhos
Primeiramente baixaremos o “Starter Pack”, nesse pacote possui as versões prebuilt
do React JS e React DOM para o seu navegador, como também uma coleção de exemplos para o seu estudo. Então depois que baixar e descompactar o zip com o starter pack
, temos a seguinte estrutura:
Criando primeiro exemplo com React JS
Criaremos o nosso primeiro arquivo helloworld.html
na pasta raiz.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Hello React!</title> <script src="build/react.js"></script> <script src="build/react-dom.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('example') ); </script> </body> </html>
O exemplo acima foi retirado da documentação, explicaremos alguns pontos. Para executar o React precisamos de três arquivos básicos react.js
, react-dom.js
e o browser.min.js
(babel). Adicionamos uma div com id “example” na linha seguinte adicionamos uma tag script com o tipo “text/babel” esse parâmetro é utilizado pelo Babel.
Para quem não conhece ele é um compilador genérico multi funcional de JavaScript. “What?” Compliquei? na real ele compila as versões mais recentes do JavaScript(ES2015 e ES2016) e React JS para uma versão que rode nos browsers atuais. Se quiser saber mais dá uma conferida no link: https://github.com/thejameskyle/babel-handbook/blob/master/translations/pt-BR/user-handbook.md#toc-introduction
Na tag script
podemos ver uma mistura de JavaScript com HTML essa sintaxe é conhecida como JSX
, no exemplo acima utilizamos uma função que renderiza o JSX
“ReactDOM.render” ela recebe dois parâmetros: o nosso código JSX
e o elemento que adicionaremos o código renderizado(O h1
com hello world).
Claro esse é um exemplo de introdução, não é obrigatório o código JSX ficar no HTML podemos criar um arquivo JavaScript separado sem problemas.
Exibindo os dados
A utilização mais básica numa interface é exibir algum dado. O foco do React JS é facilitar essa tarefa e manter as interfaces atualizadas em tempo real quando os dados mudam.
Vamos criar uma segundo exemplo com alguma interação.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Timer React</title> <script src="https://fb.me/react-15.1.0.js"></script> <script src="https://fb.me/react-dom-15.1.0.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script> </head> <body> <div id="example"></div> <script type="text/babel" > var Relogio = React.createClass({ render: function() { return ( <p> Olá, são exatamente: {this.props.date.toTimeString()} </p> ); } }); setInterval(function() { ReactDOM.render( <Relogio date={new Date()} />, document.getElementById('example') ); }, 500); </script> </body> </html>
No exemplo acima criamos um componente, classe utilizando a função “React.createClass
” temos e várias maneiras de criar componentes e cada caso tem uma particularidade, no caso do createClass
passamos um objeto como parâmetro e o atributo render possui um JSX como valor. Isso não determina que o JSX será compilado nesse momento. Apenas deixa pre-definido o que será “renderizado” quando chamarmos o componente “Relogio” mais a frente dentro do nosso JSX
temos um ponto importante “{this.props.date.toTimeString()}
” as chaves especificam que esse item é uma variável no caso quem chamar o componente precisa passar o atributo “date”.
Após o createClass
temos um setInterval
que irá chamar a cada 500 milissegundos ReactDOM.rende
r e chamamos o componente que criamos anteriormente e passamos um parâmetro date. Se tudo e correr bem teremos na nossa tela o texto:
Olá, são exatamente: XX:XX:XX(hora atual)
Se quiser saber mais sobre React, dê uma conferida na documentação: https://facebook.github.io/react/index.html
Próximo Post irei abordar mais esse ponto de criar componentes e o modo de pensar no conteúdo utilizando React.
Deixe um comentário