React.js: O que é e como funciona?

O React.js é uma biblioteca de JavaScript desenvolvida pelo Facebook para criar interfaces de usuário (UI) interativas e dinâmicas. Ele é amplamente usado no desenvolvimento de aplicativos web e móveis devido à sua flexibilidade, desempenho e facilidade de uso.


Principais Características do React.js

  1. Baseado em Componentes:
    • As UIs são divididas em componentes reutilizáveis.
    • Cada componente encapsula sua lógica, estado e renderização.
  2. Virtual DOM:
    • React usa um DOM Virtual para minimizar alterações no DOM real, o que melhora a performance.
    • Apenas as partes da interface que mudam são atualizadas.
  3. One-Way Data Binding (Fluxo de Dados Unidirecional):
    • Os dados fluem em uma única direção, tornando o estado da aplicação previsível e fácil de depurar.
  4. JSX (JavaScript XML):
    • Uma extensão de sintaxe que combina HTML com JavaScript.
    • Permite escrever estruturas semelhantes a HTML dentro do código JavaScript.
  5. Gerenciamento de Estado:
    • O estado é gerenciado no componente local ou em bibliotecas como Redux, MobX, ou Context API.

Por que usar React.js?

  • Facilidade de aprendizado: Baseado em JavaScript e conceitos simples.
  • Reutilização de código: Componentes podem ser reutilizados em diferentes partes da aplicação.
  • Ecossistema amplo: Possui uma vasta comunidade, bibliotecas e ferramentas.

Instalação do React.js

Existem várias maneiras de configurar um projeto com React, mas o mais comum é usar o Create React App.

Usando o Create React App:

bashCopiar códigonpx create-react-app nome-do-projeto
cd nome-do-projeto
npm start

Usando Vite (uma alternativa mais rápida):

bashCopiar códigonpm create vite@latest nome-do-projeto --template react
cd nome-do-projeto
npm install
npm run dev

Estrutura de um Projeto React

Depois de criar o projeto, você verá uma estrutura semelhante a esta:

scssCopiar códigosrc/
  ├── App.js          // Componente principal
  ├── index.js        // Ponto de entrada do React
  ├── components/     // Componentes reutilizáveis
  └── styles/         // Arquivos de estilo (CSS)

Criando Componentes

Existem dois tipos principais de componentes no React:

  1. Componentes Funcionais (recomendados):javascriptCopiar códigoimport React from 'react'; const MeuComponente = () => { return <h1>Olá, React!</h1>; }; export default MeuComponente;
  2. Componentes de Classe (menos usados hoje):javascriptCopiar códigoimport React, { Component } from 'react'; class MeuComponente extends Component { render() { return <h1>Olá, React!</h1>; } } export default MeuComponente;

JSX no React

O JSX permite combinar HTML e JavaScript de forma simples.

Exemplo:

javascriptCopiar códigoconst Ola = ({ nome }) => {
  return <h1>Olá, {nome}!</h1>;
};

Gerenciamento de Estado

  1. State em Componentes Funcionais: Use o hook useState para gerenciar o estado local.javascriptCopiar códigoimport React, { useState } from 'react'; const Contador = () => { const [contador, setContador] = useState(0); return ( <div> <p>Contagem: {contador}</p> <button onClick={() => setContador(contador + 1)}>Incrementar</button> </div> ); }; export default Contador;
  2. State Global: Para estados que precisam ser compartilhados, você pode usar o Context API ou bibliotecas como Redux.

Comunicação entre Componentes

  1. Props:
    • Permite passar dados de um componente pai para um componente filho.
    javascriptCopiar códigoconst Saudacao = ({ nome }) => <h1>Olá, {nome}!</h1>; const App = () => <Saudacao nome="João" />;
  2. Lifting State Up:
    • Quando componentes precisam compartilhar o mesmo estado, ele deve ser movido para o pai comum.

Ciclo de Vida dos Componentes

Componentes de classe têm métodos como componentDidMount, componentDidUpdate e componentWillUnmount. Com componentes funcionais, você pode usar o useEffect para lidar com efeitos colaterais.

Exemplo com useEffect:

javascriptCopiar códigoimport React, { useEffect, useState } from 'react';

const ContagemComEffect = () => {
  const [contador, setContador] = useState(0);

  useEffect(() => {
    console.log(`Contador atualizado: ${contador}`);
  }, [contador]); // Executa quando 'contador' muda

  return (
    <div>
      <p>Contagem: {contador}</p>
      <button onClick={() => setContador(contador + 1)}>Incrementar</button>
    </div>
  );
};

Estilizando Componentes

  1. CSS Simples:cssCopiar código/* styles.css */ h1 { color: blue; }
  2. CSS Modules:cssCopiar código/* Saudacao.module.css */ .titulo { color: green; } javascriptCopiar códigoimport styles from './Saudacao.module.css'; const Saudacao = () => <h1 className={styles.titulo}>Olá, React!</h1>;
  3. Styled Components: Uma abordagem baseada em JavaScript.javascriptCopiar códigoimport styled from 'styled-components'; const Titulo = styled.h1` color: red; `; const App = () => <Titulo>Olá, React!</Titulo>;

Por que usar React?

  • Escalável para projetos grandes e pequenos.
  • Flexível, com ferramentas e ecossistemas ricos.
  • Altamente performático, graças ao Virtual DOM.

Se precisar de ajuda para iniciar um projeto ou resolver dúvidas específicas, estou à disposição! 😊


Comentários

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *