Dominando o React

Um guia completo para aprender os fundamentos do React

Dominando o React
× Dominando o React

Dominando o React

Compartilhar

Autor: Maximilian Schwarzmüller

ISBN impresso: 978-85-7522-958-3
ISBN ebook: 978-85-7522-959-0
Ano: 2025
Páginas: 512
Preço impresso: R$ 159,00 O ebook deste livro está disponível na Amazon.

1 opinião | Opine sobre este livro

Descrição do livro

Maximilian Schwarzmüller é um instrutor de grande destaque que já ajudou mais de 3 milhões de alunos em todo o mundo a aprender a codificar. Campeão de vendas, seu curso em vídeo sobre o React, intitulado React – The Complete Guide, tem mais de novecentos mil alunos na Udemy.

Max escreveu este guia como referência rápida para iniciantes e explora os principais conceitos do React. Explicações simples, exemplos relevantes e derivações pormenorizadas fazem deste guia o recurso ideal para desenvolvedores atarefados. Nesta segunda edição, Max mostra as mudanças trazidas pelo React 19, tais como o novo hook use() e ações de formulários e como pensar sobre o React no servidor.

Este livro ajudará você em seus próximos projetos do React ao mostrar os bastidores dos frameworks – tenha você acabado de fazer o curso de Max em vídeo e esteja procurando uma referência prática, ou usando uma variedade de outros materiais didáticos e precisando de um único guia de estudo que junte todas essas informações.

No repositório GitHub do livro, você encontrará soluções completas para todos os testes e exercícios apresentados no final dos capítulos.

Você aprenderá a:

• Criar aplicativos web modernos, reativos e fáceis de usar

• Criar componentes e utilizar props para transmitir dados entre eles

• Manipular eventos, realizar atualizações de estado e gerenciar conteúdo condicional

• Adicionar estilos de forma dinâmica e condicional para interfaces de usuário modernas

• Usar técnicas avançadas de gerenciamento de estado como a API de contexto do React

• Utilizar o React Router para renderizar diferentes páginas para diferentes URLs

• Entender as melhores práticas e oportunidades de otimização

• Usar Componentes do Servidor do React e ações do servidor

Ver menos ▲

Sumário

  • Sobre o autor
  • Sobre os revisores
  • Prefácio
  • Capítulo 1: React – O que e por quê
  • Introdução
  • O que é React?
  • O problema do “JavaScript vanilla”
  • O React e os códigos declarativos
    • Como o React manipula o DOM
  • Introdução a SPAs
    • Como criar um projeto React com o Vite
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Capítulo 2: Entenda os componentes do React e o JSX
  • Introdução
  • O que são componentes?
    • Por que componentes?
    • Anatomia de um componente
    • O que exatamente são funções de componentes?
  • O que o React faz com todos esses componentes?
    • Componentes integrados
    • Convenções de nomenclatura
  • JSX x HTML x JavaScript puro
    • Como usar o React sem JSX
    • Elementos JSX são tratados como valores JavaScript regulares
    • Elementos JSX precisam ter uma tag de fechamento
  • Além do conteúdo estático
    • Como gerar conteúdo dinâmico
    • Como renderizar imagens
  • Quando dividir componentes?
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 2.1: criação de um aplicativo React para se apresentar
    • Atividade 2.2: criação de um aplicativo React para registrar suas metas para este livro
  • Capítulo 3: Componentes e props
  • Introdução
  • Os componentes podem fazer mais?
  • Como usar props em componentes
    • Como transmitir props para componentes
    • Como aplicar props em um componente
  • Componentes, props e reusabilidade
    • O prop especial “children”
    • Quais componentes precisam de props?
    • Como lidar com vários props
    • Como espalhar props
    • Prop chains/prop drilling
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 3.1: criação de um aplicativo para gerar suas metas para este livro
  • Capítulo 4: Como trabalhar com eventos e estado
  • Introdução
  • Qual é o problema?
    • Como não resolver o problema
    • Uma melhor solução incorreta
    • Como melhorar a solução ao reagir adequadamente a eventos
  • Como atualizar o estado corretamente
    • Um olhar mais atento sobre useState()
  • Como trabalhar com vários valores de estado
    • Como usar vários slices de estado
    • Como gerenciar objetos de estado mesclados
    • Como atualizar corretamente o estado com base no estado anterior
    • Binding bidirecional
  • Como derivar valores a partir do estado
    • Como trabalhar com formulários e envio de formulários
    • Elevação de estado
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 4.1: construa uma calculadora simples
    • Atividade 4.2: aprimore a calculadora
  • Capítulo 5: Como renderizar listas e conteúdo condicional
  • Introdução
  • O que são conteúdos condicionais e dados de listas?
  • Como renderizar conteúdo condicionalmente
    • Diferentes maneiras de renderizar conteúdo condicionalmente
    • Como definir tags de elementos condicionalmente
  • Como gerar dados de listas
    • Como mapear dados de listas
    • Como atualizar listas
    • Um problema com itens de listas
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 5.1: mostre uma mensagem de erro condicional
    • Atividade 5.2: gere uma lista de produtos
  • Capítulo 6: Como estilizar aplicativos React
  • Introdução
  • Como funciona a estilização em aplicativos React?
    • Como usar estilos embutidos
    • Como definir estilos por meio de classes CSS
    • Como definir estilos dinamicamente
    • Estilos condicionais
    • Como combinar várias classes CSS dinâmicas
    • Como mesclar vários objetos de estilos embutidos
    • Como construir componentes com estilos personalizáveis
  • O problema dos estilos sem escopo
    • Estilos com escopo com módulos CSS
    • Biblioteca styled-components
    • Como usar a biblioteca Tailwind CSS para estilização
    • Como usar outras bibliotecas e frameworks de estilização CSS ou JavaScript
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • formulário
    • Atividade 6.2: use módulos CSS para definir o escopo do estilo
  • Capítulo 7: Portais e refs
  • Introdução
  • Um mundo sem refs
  • Refs versus estado
  • Como usar refs para mais do que obter acesso ao DOM
    • Refs em componentes personalizados
    • Componentes controlados versus não controlados
  • React e posicionamento final no DOM
    • Portais ao resgate
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 7.1: extraia valores de entradas do usuário
    • Atividade 7.2: adicione uma gaveta lateral
  • Capítulo 8: Como lidar com efeitos colaterais
  • Introdução
  • Qual é o problema?
  • O que são efeitos colaterais?
    • Efeitos colaterais não têm a ver apenas com solicitações HTTP
  • Como lidar com efeitos colaterais com o hook useEffect()
    • Como usar useEffect()
  • Efeitos e dependências
    • Dependências desnecessárias
    • Limpeza depois dos efeitos
    • Como lidar com vários efeitos
    • Funções como dependências
    • Como evitar que o efeito seja executado desnecessariamente
    • Efeitos e código assíncrono
    • Regras de hooks
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 8.1: construa um blog básico
  • Capítulo 9: Como lidar com entradas e formulários de usuários com ações de formulários
  • Introdução
  • Como lidar com envios de formulários sem ações
    • Como extrair entradas de usuários
    • Qual é a melhor solução?
  • Como lidar com envios de formulários com ações
    • Ações síncronas versus assíncronas
  • Nos bastidores: ações são transições
  • Como gerenciar o estado com base no envio de formulários
    • Como atualizar o estado da IU com useActionState()
    • Como lidar com estados da IU pendentes com useFormStatus()
  • Como executar atualizações otimistas
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 9.1: gerencie um formulário de feedback
  • Capítulo 10: Nos bastidores do React e oportunidades de otimização
  • Introdução
  • Recapitulando avaliações e atualizações de componentes
    • O que acontece quando uma função de componente é chamada
  • DOM virtual versus DOM real
    • Agrupamento de estados
    • Como evitar avaliações desnecessárias de componentes filhos
    • Como evitar computações dispendiosas
    • Como utilizar useCallback()
    • Como usar o React Compiler
  • Como evitar o download desnecessário de códigos
  • Modo estrito
  • Como depurar código e ferramentas de desenvolvedor do React
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 10.1: otimize um aplicativo existente
  • Capítulo 11: Como trabalhar com um estado complexo
  • Introdução
  • Um problema referente ao estado entre componentes
  • Como usar o contexto para gerenciar estados de vários componentes
    • Como fornecer e gerenciar valores de contexto
    • Como usar o contexto em componentes aninhados
    • Como alterar o contexto a partir de componentes aninhados
  • Como usar a API de contexto com eficiência
    • Como obter um melhor preenchimento automático de códigos
    • Contexto ou elevação do estado?
    • Como “terceirizar” a lógica do contexto para componentes separados
    • Como combinar vários contextos
  • Limitações de useState( )
  • Como gerenciar o estado com useReducer( )
    • Entenda funções redutoras
    • Como despachar ações
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 11.1: migre um aplicativo para a API de contexto
    • Atividade 11.2: substitua useState() por useReducer()
  • Capítulo 12: Como construir hooks personalizados no React
  • Introdução
  • Introdução aos hooks personalizados
    • Por que criar hooks personalizados?
    • Um primeiro hook personalizado
  • Hooks personalizados: um recurso flexível
    • Hooks e parâmetros personalizados
    • Hooks personalizados e valores de retorno
  • Um exemplo mais complexo
    • Como criar uma primeira versão do hook personalizado
    • Como retornar valores para que o hook tenha utilidade
    • Como aceitar um parâmetro de entrada para melhorar a reusabilidade
  • Como usar hooks personalizados para acesso ao contexto
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 12.1: crie um hook personalizado para entradas no teclado
  • Capítulo 13: Aplicativos de várias páginas com React Router
  • Introdução
  • Uma única página não é suficiente
  • Primeiros passos no React Router e definição de rotas
    • Como adicionar navegação à página
    • Como trabalhar com layouts e rotas aninhadas
    • Do link para o NavLink
    • Componentes de rota versus componentes “normais”
  • De rotas estáticas a dinâmicas
    • Como extrair parâmetros da rota
    • Como criar links dinâmicos
    • Como navegar programaticamente
  • Como redirecionar
    • Como lidar com rotas indefinidas
    • Carregamento “preguiçoso”
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 13.1: crie um site básico composto de três páginas
  • Capítulo 14: Como gerenciar dados com o React Router
  • Introdução
  • A forte conexão entre busca de dados e roteamento
    • Como enviar solicitações HTTP sem o React Router
  • Como carregar dados com o React Router
    • Como obter acesso a dados carregados
    • Como carregar dados para rotas dinâmicas
    • Loaders, solicitações e código do lado cliente
  • Um novo olhar sobre layouts
    • Como reutilizar dados entre rotas
  • Como tratar erros
  • Envio de dados
    • Como trabalhar com action() e dados de formulário
    • Como retornar dados em vez de redirecionar
    • Como controlar qual <Form> aciona qual ação
    • Como refletir o status de navegação atual
    • Como enviar formulários programaticamente
    • Busca e envio de dados nos bastidores
    • Como adiar o carregamento de dados
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 14.1: um aplicativo de tarefas
  • Capítulo 15: Renderização do lado servidor e construção de aplicativos fullstack com Next js
  • Introdução
  • O que há de errado com os aplicativos React do lado cliente?
  • O que é renderização do lado servidor (SSR)?
  • Como adicionar SSR a um aplicativo React
    • A busca de dados no lado servidor não é trivial
  • Introdução ao Next js
    • Como criar projetos do Next js
    • Como trabalhar com rotas baseadas em arquivos
    • Renderização do lado servidor com Next js
    • Como trabalhar com layouts
    • Como gerenciar a navegação interna
    • Como criar e usar componentes regulares
    • Como lidar com rotas dinâmicas
    • Outras convenções de nomenclatura de arquivos
  • Aprofundando-se no Next js
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 15.1: migre um aplicativo React Router baseado no Vite
  • Capítulo 16: Componentes do Servidor do React e ações do servidor
  • Introdução
  • O problema da busca de dados no lado servidor
  • Introdução aos RSCs
    • Entenda os RSCs
    • Como criar e usar RSCs
    • Como usar RSCs em projetos do React
    • Não é possível usar RSCs e ações do servidor em todos os projetos
    • RSCs versus renderização no lado servidor
    • RSCs versus componentes do cliente
    • Busca avançada de dados com Next js
  • Da busca de dados à mutação de dados
    • Como lidar com mutações de dados com ações do servidor
    • Como usar ações do servidor em projetos do React
    • Como definir e acionar ações do servidor
    • Como lidar com entradas de usuários e atualizar a IU
    • Ações do servidor e useActionState()
    • Como armazenar ações do servidor em arquivos separados
  • Resumo e principais conclusões
    • O que vem a seguir?
    • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 16.1: crie um miniblog
  • Capítulo 17: Entenda o React Suspense e o hook use()
  • Introdução
  • Como usar o Suspense para mostrar conteúdo de fallback mais refinado
    • Como usar o Suspense para busca de dados com Next js
    • Como usar o Suspense em outros projetos do React – possível, mas complicado
  • Padrões de uso do Suspense
    • Como revelar conteúdo junto
    • Como revelar conteúdo o mais rapidamente possível
    • Como aninhar conteúdo suspenso
  • Buscar dados com Suspense ou useEffect()?
  • Resumo e principais conclusões
    • O que vem a seguir?
  • Teste seus conhecimentos!
  • Aplique o que aprendeu
    • Atividade 17.1: implemente o Suspense no miniblog
  • Capítulo 18: Próximos passos e recursos adicionais
  • Introdução
  • Como proceder?
    • Torne-se um desenvolvedor fullstack do React
    • Problemas interessantes a explorar
    • Bibliotecas do React comuns e populares
    • Uso de TypeScript
    • Outros recursos
    • Além do React para aplicativos da web
  • Palavras finais
  • Índice remissivo
Ver sumário completo ▼

Sobre o autor

Maximilian Schwarzmüller

Maximilian Schwarzmüller é desenvolvedor web profissional e instrutor de cursos campeões de vendas on-line. Na Udemy, é um dos instrutores on-line mais populares e de maior destaque, com mais de 3 milhões de alunos em todo o mundo. Para se tornarem desenvolvedores, os alunos podem explorar os mais de 40 cursos oferecidos por ele, a maioria dos… Ver perfil completo ▶

Opinião dos leitores

Angel A G M

Excelente.

Ver todas ▼