Como Funciona a Renderização Condicional em Componentes React?
A renderização condicional em React permite que você crie interfaces de usuário dinâmicas. É usado para mostrar conteúdo diferente com base em certas condições ou estados dentro da sua aplicação.
As abordagens mais comuns para usar renderização condicional incluem usar declarações
if, o operador ternário (?:) e o operador lógico AND (&&).
A forma mais simples de renderização condicional usa uma declaração if. Aqui está um exemplo:
function Greeting({ isLoggedIn }) {
if (isLoggedIn) {
return <h1>Welcome back!</h1>;
}
return <h1>Please sign in</h1>;
}
Neste exemplo, o componente Greeting verifica a prop isLoggedIn. Se for true, ele retorna uma mensagem de boas-vindas, caso contrário, solicita que o usuário faça login.
Aqui está um exemplo usando o componente Greeting dentro do componente pai App:
function App() {
return (
<div className="App">
<Greeting isLoggedIn={false} />
</div>
);
}
Para condições mais simples, o operador ternário (?:) é frequentemente usado diretamente dentro do JSX. Ele permite renderização condicional inline, o que pode tornar seu código mais conciso:
function Greeting({ isLoggedIn }) {
return <h1>{isLoggedIn ? "Welcome back!" : "Please sign in."}</h1>;
}
Este código alcança o mesmo resultado do exemplo anterior mas de uma forma mais compacta. O operador ternário verifica isLoggedIn e exibe a mensagem apropriada.
Outro padrão comum para renderização condicional é usar o operador lógico AND (&&). Isto é particularmente útil quando você quer renderizar algo, ou nada, baseado em uma condição:
function Notification({ message }) {
return (
<div>
{message && <p>{message}</p>}
</div>
);
}
Neste exemplo, o elemento de parágrafo com a mensagem é renderizado apenas se a prop message for verdadeira. Se message for falsy - ou seja, uma string vazia, null ou undefined, nada será renderizado na tela.
Dominando essas técnicas de renderização condicional, você pode criar aplicações mais interativas e amigáveis ao usuário que se adaptam a dados e interações do usuário em constante mudança.Este módulo não possui perguntas. Marque como concluído.