In React apps, you’ll typically must render completely different UI elements conditionally based mostly on sure state. For instance, displaying a login kind if a person will not be authenticated, or displaying completely different content material based mostly on configurable settings.
Listed here are helpful patterns for conditional rendering in React:
If/Else Statements
The usual JS if/else assertion works in JSX too:
perform App() {
const loggedIn = false;
if (loggedIn) {
return <WelcomeMessage />;
} else {
return <LoginForm />;
}
}
This can render both the WelcomeMessage
or LoginForm
element based mostly on the worth of loggedIn
.
Ternary Operator
perform App() {
const isLoading = true;
return (
<div>
{isLoading ? <Loader /> : <Content material />}
</div>
)
}
If isLoading
is truthy, it’ll render the Loader, else render Content material.
Quick Circuit Analysis
You possibly can make the most of JS brief circuit analysis:
perform App() {
const showAlert = false;
return (
<div>
{showAlert && <Alert />}
</div>
)
}
If showAlert
is falsy, React received’t even consider the <Alert />
expression.
Component Variables
You possibly can retailer parts in variables for conditional rendering:
perform App() {
let message;
if (person) {
message = <WelcomeMessage />;
} else {
message = <SignUpMessage />;
}
return <div>{message}</div>;
}
Stopping Part Rendering
For extra management, you possibly can return null
to forestall rendering:
perform App(props) {
if (!props.approved) {
return null;
}
return <AdminPanel />;
}
By returning null, App
received’t render something if props.approved
is falsy.
Displaying/Hiding Parts
An alternative choice is conditionally making use of the hidden
attribute:
return (
<div>
<Alert hidden={!error} />
</div>
)
The Alert
might be hidden if error
is falsy.
Conclusion
There are a couple of alternative ways to conditionally render in React:
- If/else statements
- Ternary expressions
- Quick circuit analysis
- Returning null or utilizing hidden attributes
Select the precise technique based mostly in your use case. Conditional rendering is important for constructing reusable React elements that adapt to completely different states.