🚀 Capítulo 19: Boas Práticas
🎯 Objetivo da Aula
Ao final desta aula, você conhecerá as melhores práticas do mercado para organizar seus projetos React, criar componentes limpos e manter o código fácil de entender por outros desenvolvedores.
🏢 O Cenário Prático (Seu Desafio)
O código dos sistemas da Millenium Falcon foi escrito às pressas por vários contrabandistas e agora está uma bagunça! Seu desafio é aplicar as Diretrizes da Aliança Rebelde (Boas Práticas) para organizar os arquivos e garantir que qualquer piloto consiga entender o sistema!
🧠 Fundamentos: A Teoria Traduzida
Um bom desenvolvedor não apenas faz o código funcionar, ele faz o código ser fácil de ler! Aqui estão as regras de ouro do React:
1. Componentes Pequenos e Focados
Um componente deve fazer apenas uma coisa bem feita. Se o seu arquivo de componente tiver mais de 200 linhas, provavelmente ele está fazendo coisas demais e deve ser dividido em componentes menores.
2. Organização de Pastas Padrão
Não jogue todos os arquivos dentro da pasta src. Organize assim:
src/components/: Para componentes reutilizáveis (Botões, Cards, Menus).src/hooks/: Para os seus Custom Hooks.src/context/: Para os arquivos da Context API.src/pages/ousrc/views/: Para os componentes que representam páginas inteiras das rotas.
3. Convenção de Nomes
- PascalCase para arquivos de componentes:
PainelControle.jsx,BotaoDisparar.jsx. - camelCase para funções e variáveis:
const [meuEstado, setMeuEstado] = useState().
📖 Exemplo Guiado: Refatorando um Componente
Imagine este componente bagunçado:
// Bagunçado: Tudo no mesmo lugar
function Painel() {
return (
<div>
<h1>Painel</h1>
{/* Lista complexa aqui dentro */}
<ul><li>Nave 1</li><li>Nave 2</li></ul>
{/* Rodapé aqui dentro */}
<footer>Status: Ok</footer>
</div>
)
}O Jeito Certo (Refatorado):
import ListaNaves from './components/ListaNaves';
import Rodape from './components/Rodape';
function Painel() {
return (
<div>
<h1>Painel</h1>
<ListaNaves />
<Rodape status="Ok" />
</div>
)
}🛠️ Prática Obrigatória 1
Onde você guardaria o arquivo useContador.js que criamos no Capítulo 8, seguindo a estrutura de pastas recomendada?
🛠️ Prática Obrigatória 2
O que está errado (segundo as convenções) no nome do arquivo de componente listadeclones.jsx? Como ele deveria se chamar?
🔑 Gabarito de Código/Fórmulas
Prática 1:
Deveria ficar na pasta src/hooks/useContador.js.
Prática 2:
O nome está todo em minúsculo. Como é um componente, deveria usar PascalCase com as primeiras letras maiúsculas: ListaDeClones.jsx.