React
AutorJordan Walke
DesenvolvedorMeta Platforms
Lançamento inicial29 de maio de 2013 (13 anos)[1]
Lançamento estável
19.2.3[2] / 11 de dezembro de 2025; há 6 meses
Repositórioreact no GitHub
Escrito emJavaScript e TypeScript
PlataformaWeb
Tamanho172 kB
Disponível eminglês
TipoFramework para aplicações web
LicençaMIT[3]
Websitereact.dev

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]

JSX

editar

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:

import { useState } from 'react';
import { createRoot } from 'react-dom/client';

const root = createRoot(document.getElementById('root'));

// Estado reativo
const [name, setName] = useState('Mundo');

root.render(
  <h1>Olá, {name}!</h1>
);

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.

Virtual DOM

editar

A Virtual DOM (do inglês, "DOM virtual") é 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

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]

Ver também

editar

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.2.3». 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.

📚 Artikel Terkait di Wikipedia

React

algo React - canção do rapper Onyx React - canção das Pussycat Dolls ReactOS - um sistema operacional React (JavaScript), uma biblioteca para JavaScript.

Redux (biblioteca JavaScript)

é uma biblioteca JavaScript de código aberto para gerenciar o estado do aplicativo. É mais comumente usado com bibliotecas como React ou Angular para criar

React Native

macOS apps with Javascript and React». microsoft.github.io (em inglês). Consultado em 2 de outubro de 2020  «React Native for Apple TV». React Native for Apple

Svelte

speedy Svelte framework puts JavaScript on a diet». InfoWorld  «React vs. Svelte, the JavaScript build-time framework». react-etc.net  «Svelte 3 Front-End

Vue.js

js (informalmente chamado de Vue; pronunciado [vjuː]) é um framework JavaScript de código-aberto, focado no desenvolvimento de interfaces de usuário e

Vercel

que desenvolvedores criem interfaces de conversação com streaming em JavaScript e TypeScript. Em maio de 2024, a Vercel levantou 250 milhões de dólares

Node.js

baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web. A principal característica do Node.js é sua

Next.js

React que permite vários recursos extras, incluindo renderização do lado do servidor e geração de sites estáticos. React é uma biblioteca JavaScript tradicionalmente