O que é React? Guia em linguagem simples para não programadores
O React é uma biblioteca JavaScript para criar interfaces de utilizador: a parte da app que as pessoas veem e tocam. Constróis os ecrãs com peças reutilizáveis chamadas componentes, como um botão, um cartão de produto ou uma página inteira, e o React mantém o ecrã sincronizado com os teus dados: quando os dados mudam, o React atualiza as partes da página que dependem deles. Foi criado no Facebook (hoje Meta), é de código aberto e é uma das formas mais usadas para criar apps web.
Porque é que o React importa quando crias com IA
Se crias uma app web com uma ferramenta de IA, há uma boa probabilidade de ela estar escrita em React. Muitos criadores de apps com IA usam React por defeito, porque é popular, bem documentado e existe uma enorme quantidade de código React a partir do qual os modelos de IA aprenderam.
Não precisas de escrever React para criar com IA. Mas saber um pouco ajuda-te a:
- Descrever alterações com precisão. «Muda o componente ProductCard para que o preço fique em negrito» é mais claro do que «faz com que os preços se destaquem em algum lado».
- Perceber os erros. Mensagens como «Cannot read properties of undefined» ou «Too many re-renders» fazem mais sentido.
- Fazer escolhas sensatas. As apps React simples renderizam no browser, o que afeta a visibilidade nas pesquisas e a velocidade do primeiro carregamento. Saber isso ajuda-te a decidir quando pedir outra configuração.
- Trabalhar mais tarde com programadores. O React é uma competência comum, por isso um programador consegue normalmente pegar num projeto React.
Uma analogia do dia a dia
Pensa em LEGO. Em vez de esculpir um modelo inteiro a partir de um só bloco, constróis com peças padrão. Algumas peças fazem uma roda; quatro rodas e outras peças fazem um carro. Se quiseres que todos os carros tenham rodas vermelhas, alteras o desenho da roda uma única vez.
Os componentes React são as peças. Um componente Button é usado dentro de um ProductCard, que é usado dentro de um ProductGrid, que faz parte da ShopPage. Alteras o Button uma vez, e todos os botões da app mudam.
A outra metade da analogia: imagina que o modelo LEGO se reconstruía sozinho sempre que mudavas as instruções. Esse é o outro truque do React: descreves como o ecrã deve ter aspeto para os dados atuais, e o React descobre o que mudar na página.
As ideias centrais
Componentes
Um componente é uma função JavaScript que devolve um pedaço de interface. A documentação do React descreve um componente como uma parte da interface que tem a sua própria lógica e aparência. Os nomes dos componentes começam com letra maiúscula.
JSX
Os componentes são normalmente escritos em JSX, que parece HTML misturado com JavaScript:
function Greeting() {
return <h1>Welcome back!</h1>;
}
O JSX é opcional, mas a documentação do React refere que a maioria dos projetos o usa. É convertido em JavaScript simples antes de correr no browser.
Props
As props são as entradas que passas a um componente, como definições de uma peça reutilizável:
<ProductCard name="Lavender Candle" price={24} />
O mesmo ProductCard pode mostrar qualquer produto.
Estado
O estado é a informação que um componente guarda e que pode mudar enquanto a app corre: se um menu está aberto, o que foi escrito numa caixa de pesquisa, quantos artigos estão no carrinho. Quando o estado muda, o React volta a renderizar o componente para o ecrã corresponder.
Hooks
Os hooks são funções cujos nomes começam por use, como useState (guardar um valor) e useEffect (executar código depois de renderizar, por exemplo para ir buscar dados). Vais vê-los em todo o código React gerado por IA.
Um exemplo prático: um contador de carrinho
Suponhamos que a tua loja online tem um botão «Adicionar ao carrinho» e um ícone de carrinho que mostra o número de artigos. Em React, fica mais ou menos assim:
import { useState } from "react";
function Shop() {
const [cartCount, setCartCount] = useState(0);
return (
<div>
<CartIcon count={cartCount} />
<ProductCard
name="Lavender Candle"
price={24}
onAdd={() => setCartCount(cartCount + 1)}
/>
</div>
);
}
function CartIcon({ count }) {
return <span>Cart ({count})</span>;
}
function ProductCard({ name, price, onAdd }) {
return (
<div>
<h2>{name}</h2>
<p>${price}</p>
<button onClick={onAdd}>Add to cart</button>
</div>
);
}
O que acontece quando um comprador clica em «Adicionar ao carrinho»:
- O
onClickdo botão chamaonAdd, que chamasetCartCount. - O React atualiza o estado
cartCountde 0 para 1. - O React volta a renderizar
Shop, passandocount={1}paraCartIcon. - A página mostra agora «Cart (1)». Ninguém escreveu código a dizer «encontra o texto do carrinho e muda-o»: o ecrã segue os dados.
Repara também nos limites. Esta contagem vive na memória do browser. Se atualizares a página, volta a 0. Para manter um carrinho, terias de o guardar num sítio duradouro: um cookie, o armazenamento do browser, ou uma base de dados através do teu backend. O React trata do ecrã; não guarda os teus dados.
Onde o React encaixa numa aplicação web
| Peça | O que faz | Escolhas comuns |
|---|---|---|
| Biblioteca de interface | Constrói a interface | React |
| Linguagem | Em que é escrito o código | JavaScript ou TypeScript |
| Ferramenta de build | Transforma o código-fonte em ficheiros que o browser carrega; corre o servidor de desenvolvimento | Vite |
| Framework (opcional) | Acrescenta encaminhamento, renderização no servidor, carregamento de dados | Next.js, React Router |
| Estilos | Como aparece | Tailwind CSS, ficheiros CSS |
| Backend | Lógica de negócio, dados, segredos | Node.js, Python e outros |
| Base de dados | Guarda os dados | Postgres e outras |
Uma app «Vite + React» é renderizada no browser (uma single-page app). Uma app Next.js pode renderizar primeiro as páginas no servidor, o que ajuda os motores de pesquisa e a velocidade do primeiro carregamento.
Termos comuns explicados
| Termo | O que significa |
|---|---|
| Componente | Uma peça reutilizável de interface, escrita como uma função. |
| JSX | Sintaxe semelhante a HTML dentro de JavaScript, usada para descrever componentes. |
| Props | Entradas passadas a um componente. |
| Estado | Dados que um componente guarda e que podem mudar com o tempo. |
| Hook | Uma função que começa por use e que acrescenta funcionalidades como estado a um componente. |
| Renderizar / renderizar de novo | O React a descobrir o que o ecrã deve mostrar, outra vez depois de alterações. |
| Single-page app (SPA) | Uma app que carrega uma vez e atualiza a página com JavaScript em vez de carregar páginas novas. |
| Renderização no servidor (SSR) | Produzir o HTML de uma página no servidor antes de o enviar. |
| Pacote npm | Uma biblioteca de código reutilizável que podes instalar, como um seletor de datas ou uma biblioteca de gráficos. |
| React Native | Um projeto relacionado para criar apps móveis nativas. |
Erros comuns e ideias erradas
- «O React é uma linguagem de programação.» É uma biblioteca escrita e usada a partir de JavaScript (ou TypeScript).
- «O React guarda os meus dados.» O estado vive no browser e desaparece ao atualizar. Os dados duradouros precisam de um backend e de uma base de dados.
- Colocar segredos no código React. Tudo numa app React é enviado para o browser do visitante. As chaves de API ali são públicas. Mantém-nas no servidor.
- «As apps React não conseguem aparecer nas pesquisas.» A renderização apenas no cliente é mais fraca para pesquisa, mas a pré-renderização ou a renderização no servidor resolve a maior parte do problema.
- Componentes gigantes. Um componente de 1.000 linhas é difícil de alterar com segurança, tanto para pessoas como para a IA. Pede componentes mais pequenos.
- Assumir que uma app web React é uma app de telemóvel. Corre no browser, incluindo em telemóveis, mas não é uma app da App Store.
O que pedir ao teu criador de apps com IA
- «Divide esta página em componentes pequenos e com nome, e diz-me em que ficheiro está cada um.»
- «Torna o componente ProductCard reutilizável, com name, price e image como props.»
- «Guarda o carrinho na base de dados para sobreviver a uma atualização da página.»
- «Mantém todas as chaves de API no servidor; o código React deve chamar a nossa própria API.»
- «Acrescenta estados de carregamento e de erro para os dados que vêm do servidor.»
- «Se a visibilidade nas pesquisas for importante nestas páginas, pré-renderiza-as ou usa uma configuração com renderização no servidor.»
- «Explica em linguagem simples o que significa este erro e de que componente vem.»
Para a visão geral, vê frontend vs backend, e para rever o que a IA escreveu, como rever código gerado por IA.
React na Mythex
Salvo se pedires outra coisa, a Mythex começa os projetos novos com Vite + React + TypeScript + Tailwind, com uma pré-visualização em direto a correr enquanto conversas. Podes indicar outra configuração no teu primeiro prompt — por exemplo «Usa Next.js» ou «página de destino simples em HTML estático» — e a Mythex escolhe-a a partir do que escreves; não há um ecrã de definições para isso. A página da documentação sobre como a tecnologia é escolhida explica as opções. O editor de código é só de leitura no plano gratuito; no Pro podes editar o código React diretamente e exportar o projeto para continuares a trabalhar nele noutro lado.
Perguntas
O que é React, em termos simples?
O React é uma biblioteca JavaScript para criar interfaces de utilizador. Constróis os ecrãs com peças reutilizáveis chamadas componentes, como um botão, um cartão de produto ou uma página inteira, e o React atualiza o que aparece no ecrã quando os dados por baixo mudam.
O React é uma framework ou uma biblioteca?
O React chama-se a si próprio biblioteca: concentra-se em construir a interface. As frameworks construídas por cima dele, como o Next.js, acrescentam coisas como encaminhamento de páginas, renderização no servidor e carregamento de dados.
Porque é que os criadores de apps com IA usam React?
O React é uma das formas mais usadas para criar interfaces web, por isso existe uma enorme quantidade de código e documentação em React a partir da qual os modelos de IA aprenderam. A sua estrutura de componentes também facilita pequenas alterações pontuais.
O React é mau para SEO?
Não por natureza. Uma app em React que renderiza tudo no browser é mais difícil de ler para alguns rastreadores, mas o React também pode ser pré-renderizado ou renderizado no servidor, por exemplo com o Next.js, o que resolve a maior parte do problema.
O React é o mesmo que React Native?
Não. O React cria interfaces web que correm num browser. O React Native usa as mesmas ideias para criar apps nativas para iOS e Android. Partilham conceitos, mas não a maior parte dos blocos de construção.