Props (Propriedades)
As Props são a forma como passamos dados de um componente pai para um componente filho. Elas são imutáveis (read-only) do ponto de vista do componente que as recebe.
Como usar?
No React, as props são passadas como atributos para os componentes e recebidas como o primeiro argumento da função do componente.
Exemplo de Uso:
tsx
// Componente Filho
function WelcomeMessage({ name, isAdmin }: { name: string; isAdmin: boolean }) {
return (
<View>
<Text>Olá, {name}!</Text>
{isAdmin && <Text>(Administrador)</Text>}
</View>
);
}
// Componente Pai
function App() {
return <WelcomeMessage name="João" isAdmin={true} />;
}Quando usar?
- Configuração de Componentes: Definir variantes de estilo (
type="primary"), tamanhos (size="large") ou rótulos. - Passagem de Dados: Enviar informações buscadas da API para componentes de visualização.
- Callbacks de Eventos: Passar funções para que o filho avise ao pai sobre interações (
onPress,onChange). - Composição (Slots): Usar a prop
childrenou slots específicos para injetar conteúdo.
Quando NÃO usar?
- Prop Drilling Excessivo: Se você está passando a mesma prop por 5 níveis de componentes que não a utilizam, considere usar um Contexto ou estado global (Redux/TanStack Query).
- Dados que mudam muito rápido: Evite passar estados de animação ou scrolls via props em árvores profundas sem memorização, pois isso causará re-renderizações em toda a cadeia.
Melhores Práticas
- Use Function: Sempre declare seus componentes como funções nomeadas (
function MyComponent()). - Destruturação: Sempre destruture as props no argumento da função para facilitar a leitura e definir valores padrão.
- Bom:
function Button({ label = 'Ok' }) { ... } - Ruim:
function Button(props) { ... }
- Bom:
- Tipagem (TypeScript): Sempre defina uma
interfaceoutypepara as props. Isso evita bugs de "undefined" e melhora o autocomplete. - Slot Components: Para layouts complexos, prefira usar props que aceitam componentes (
header={<Header />}) em vez de dezenas de props booleanas.