📅 Versão atualizada em 19/06/2025 (versão 2)
Nessa versão foram excluídos os seguintes tópicos:
❌ Passagem de dados - movido para a Aula 3
❌ Iteração sobre arrays - movido para a Aula 4
📅 Versão atualizada em 19/06/2025 (versão 2)
Nessa versão foram incluídos os seguintes tópicos:
✔️ Renderização Condicional - movido da Aula 6
✔️ Renderização Condicional - mais explicações sobre o operador &&
✔️ Re-renderização - movido da Aula 6
Renderização condicional em React é o processo de decidir o que exibir na interface do usuário com base em certas condições.
const UserGreeting = ({ isLoggedIn }) => {
return (
<div>
{isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please log in.</h1>}
</div>
);
}
O Short-circuit Evaluation no JavaScript ocorre quando operadores lógicos, como && (E lógico), avaliam expressões e interrompem a execução assim que o resultado é conhecido. O operador && avalia os operandos da esquerda para a direita.
Ele retorna o primeiro valor falsy encontrado. Se todos os valores forem truthy, retorna o último valor avaliado. O operador interrompe a avaliação assim que encontra um valor que determina o resultado final. No caso do &&, se o primeiro valor for falsy, o restante não é avaliado.
&&
é útil para verificar condições sem precisar usar
estruturas como if
. Ele é eficiente porque interrompe a
execução assim que a condição é resolvida. Combinado com React, é uma
maneira limpa de implementar renderização condicional.
const Notification = ({ showNotification }) => {
return (
<div>
{showNotification && <p>You have new messages!</p>}
</div>
);
}
const Greeting = ({ isLoggedIn }) => {
const renderGreeting = () => {
if (isLoggedIn) {
return <h1>Welcome back!</h1>;
}
return <h1>Please sign in.</h1>;
}
return <div>{renderGreeting()}</div>;
}
Em React, os componentes re-renderizam quando há alterações no estado, nas props, ou em raros casos, forçando a atualização manualmente.
const Counter = () => {
const [count, setCount] = React.useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increment</button>
</div>
);
}
const Display = ({ message }) => {
return <h1>{message}</h1>;
}
const App = () => {
const [text, setText] = React.useState('Hello');
return (
<div>
<Display message={text} />
<button onClick={() => setText('World')}>Change Message</button>
</div>
);
}
const App() => {
const [, forceUpdate] = React.useState(0);
return (
<div>
<button onClick={() => forceUpdate(n => n + 1)}>Force Update</button>
</div>
);
}