In React apps, you’ll usually must render completely different UI elements conditionally based mostly on sure state. For instance, displaying a login kind if a consumer isn’t authenticated, or displaying completely different content material based mostly on configurable settings.
Listed below 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 may 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’s going to render the Loader, else render Content material.
Quick Circuit Analysis
You’ll be able to benefit from 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.
Ingredient Variables
You’ll be able to retailer components in variables for conditional rendering:
perform App() {
let message;
if (consumer) {
message = <WelcomeMessage />;
} else {
message = <SignUpMessage />;
}
return <div>{message}</div>;
}
Stopping Part Rendering
For extra management, you may return null
to stop rendering:
perform App(props) {
if (!props.licensed) {
return null;
}
return <AdminPanel />;
}
By returning null, App
received’t render something if props.licensed
is falsy.
Exhibiting/Hiding Parts
An alternative choice is conditionally making use of the hidden
attribute:
return (
<div>
<Alert hidden={!error} />
</div>
)
The Alert
will likely be hidden if error
is falsy.
Conclusion
There are a couple of other ways to conditionally render in React:
- If/else statements
- Ternary expressions
- Quick circuit analysis
- Returning null or utilizing hidden attributes
Select the suitable methodology based mostly in your use case. Conditional rendering is important for constructing reusable React elements that adapt to completely different states.