Referência rápida

Guia Rápido de React.js

Um guia de referencia completo para React moderno: JSX, componentes funcionais, hooks (useState, useEffect, useContext, useMemo, useRef) e portals.

· Publicado

React e a biblioteca JavaScript consagrada para construir interfaces de usuario modulares baseadas em componentes.

Componentes Funcionais e JSX

import React, { useState } from 'react';

export function Greeting({ name, role = "Member" }) {
  return (
    <div className="card">
      <h2>Hello, {name}!</h2>
      <span className="badge">{role}</span>
    </div>
  );
}

Hooks Fundamentais do React

useState

const [count, setCount] = useState(0);

// Atualizacao funcional (garante o estado mais recente)
setCount((prev) => prev + 1);

useEffect

Lida com efeitos colaterais como requisicoes de rede, subscricoes e manipulacao do DOM:

useEffect(() => {
  const handleResize = () => setWindowWidth(window.innerWidth);
  window.addEventListener('resize', handleResize);

  // Funcao de limpeza executada na desmontagem ou antes de reexecutar
  return () => {
    window.removeEventListener('resize', handleResize);
  };
}, []); // Array de dependencias vazio: executa uma unica vez na montagem

useContext

Consome dados de contexto sem a necessidade de repassar propriedades (prop-drilling):

const ThemeContext = React.createContext('light');

function Display() {
  const theme = useContext(ThemeContext);
  return <div className={`theme-${theme}`}>Active Theme</div>;
}

useMemo e useCallback

Otimizacoes de desempenho para computacoes pesadas e estabilidade de referencias:

// Memorizar calculo pesado
const filteredUsers = useMemo(() => {
  return users.filter((u) => u.score > threshold);
}, [users, threshold]);

// Memorizar definicao de funcao callback
const handleRemove = useCallback((id) => {
  setItems((prev) => prev.filter((item) => item.id !== id));
}, []);

useRef

Armazena valores mutaveis entre renderizacoes sem disparar um novo render:

const inputRef = useRef(null);

const focusInput = () => {
  inputRef.current.focus();
};

return <input ref={inputRef} />;

Hooks Customizados (Custom Hooks)

Isola logica de estado reutilizavel em funcoes iniciadas com use:

function useOnlineStatus() {
  const [isOnline, setIsOnline] = useState(navigator.onLine);

  useEffect(() => {
    const handleOnline = () => setIsOnline(true);
    const handleOffline = () => setIsOnline(false);

    window.addEventListener('online', handleOnline);
    window.addEventListener('offline', handleOffline);

    return () => {
      window.removeEventListener('online', handleOnline);
      window.removeEventListener('offline', handleOffline);
    };
  }, []);

  return isOnline;
}

Fragmentos e Portals

// Fragmentos sem criar elementos extras no DOM
return (
  <>
    <Header />
    <MainContent />
  </>
);

// Renderizacao em um container DOM externo
import { createPortal } from 'react-dom';

function Modal({ children }) {
  return createPortal(
    <div className="modal-overlay">{children}</div>,
    document.getElementById('modal-root')
  );
}

Referências

Temas relacionados