Saltar para o conteúdo

React (JavaScript)

Origem: Wikipédia, a enciclopédia livre.
React
Autor Facebook
Desenvolvedor Facebook
Plataforma Multiplataforma
Modelo do desenvolvimento Software de código aberto
Lançamento 29 de maio de 2013 (11 anos)[1]
Versão estável 19.0.0[2] (5 de dezembro de 2024; há 5 meses)
Idioma(s) Multilíngue
Escrito em JavaScript, TypeScript, Rust, C++
Sistema operativo Linux, macOS, Windows
Gênero(s) Biblioteca JavaScript
Licença Licença MIT[3]
Estado do desenvolvimento Ativo
Tamanho 237 kB
Página oficial react.dev
Repositório github.com/facebook/react

O React (também denominado React.js ou ReactJS) é uma biblioteca front-end JavaScript de código aberto com foco em criar interfaces de usuário em páginas web, criado em 2011 pelo Facebook, com o objetivo de otimizar a atualização e a sincronização de atividades simultâneas no feed de notícias da rede social e melhorar a manutenção de código, com a criação de views declarativas e componentes.

É mantido pelo Facebook, Instagram, outras empresas e uma comunidade de desenvolvedores individuais. É utilizado nos sites da Netflix, Imgur, Feedly, Airbnb, SeatGeek, HelloSign, Walmart e, outros.[4]

Em 2015, o Facebook anunciou o módulo React Native, que em conjunto com o React, possibilita o desenvolvimento de aplicativos para Android e iOS utilizando componentes de interface de usuário nativos de ambas plataformas, sem precisar usar o HTML.[5]

Na pesquisa de 2018 sobre hábitos de desenvolvedores do site Stack Overflow, o React foi a terceira biblioteca ou framework mais citado pelos usuários e desenvolvedores profissionais, ficando atrás somente do Node.js e Angular, respectivamente.[6]

O JSX (JavaScript XML) é uma extensão de sintaxe para JavaScript que escrever a interface do usuário de forma semelhante ao HTML.[7] Embora seu uso não seja obrigatório, a maioria dos desenvolvedores usa para descrever como a UI deveria parecer. Essa abordagem facilita a criação dos componentes da interface do usuário no React, pois os componentes são definidos de forma declarativa deixando o código legível e intuitivo.[7] Exemplo:

const name = 'Josh Perez';
const element = <h1>Hello, {name}</h1>;

ReactDOM.render(
  element,
  document.getElementById('root')
);

Depois da compilação usando o Babel, as expressões em JSX são transformadas em chamadas normais de funções que retornam objetos JavaScript.[7] O JSX pode ser usado fora do React, se configurar uma transformação personalizada do JSX via Babel.

É uma representação virtual da interface do usuário que é armazenada em memória e mantida em sincronia com a DOM “real”. Dessa forma, o React só altera na verdadeiro DOM apenas o que foi modificado. Assim,  é abstraída a manipulação de atributos, de eventos e atualização manual do DOM.

A Virtual DOM  está associada aos elementos da biblioteca, que são objetos representando a UI. Entretanto, o React também possui os “fibers”, que são objetos internos que contém informações sobre a árvore de componentes e podem ser considerados parte da Virtual DOM.[8]

Algoritmo de reconciliação

[editar | editar código-fonte]

Reconciliação é o processo pelo qual o React atualiza o DOM do navegador. A cada renderização o React retorna uma árvore de elementos diferentes. Nesse sentido, é necessário descobrir como a interface deve ser atualizada para estar em sincronia com a última árvore apresentada. Os conceitos por trás deste algoritmo são a Virtual DOM e o algoritmo de diffing.[9]

Em toda atualização, é criado uma nova Virtual DOM e compara com a sua versão anterior. Essa comparação ocorre pelo algoritmo de diffing. Após a comparação ser  realizada, uma outra Virtual DOM é produzida já com as alterações adicionadas. Por fim, o React faz a atualização da DOM “real” no navegador com o menor número de atualizações possíveis.[9]

Referências

  1. JSConf (5 de agosto de 2013). «[JSConfUS 2013] Tom Occhino and Jordan Walke: JS Apps at Facebook». Youtube (em inglês). Consultado em 4 de julho de 2022 
  2. «Release 19.0.0». Github (em inglês) 
  3. «react/LICENSE at master». Github (em inglês). Consultado em 22 de maio de 2021 
  4. «JavaScript's History and How it Led To ReactJS». thenewstack.io (em inglês). Consultado em 19 de fevereiro de 2017 
  5. «React Native: Bringing modern web techniques to mobile - Facebook Code». Facebook Code (em inglês). 26 de março de 2015 
  6. «Developer Survey 2018». Stack Overflow. 2018. Consultado em 4 de julho de 2022 
  7. a b c «Writing Markup with JSX – React». react.dev (em inglês). Consultado em 23 de maio de 2025 
  8. «React: The Virtual DOM». Codecademy (em inglês). Consultado em 29 de setembro de 2022 
  9. a b «React calls Components and Hooks – React». react.dev (em inglês). Consultado em 23 de maio de 2025 
Ícone de esboço Este artigo sobre Internet é um esboço. Você pode ajudar a Wikipédia expandindo-o.