Skip to main content

Command Palette

Search for a command to run...

Conditional Rendering in React.js

Updated
•2 min read•View as Markdown
Conditional Rendering in React.js

Today, I'll be showing you Conditional Rendering in React.js.

Conditional Rendering is to Render Components based on Conditions.

For Example:

if(Condition A == true){
return <Component_A/>;
}
else{
return <Component_B/>;
}

condition.gif

In React, this can be done in 3 ways.

First, Using the good old Ternary Operator.

Ternary Operator checks the given condition, and if it's true it returns the Element/Component next to the question mark (?) else it returns the Element/Component next to Colon (:).

Syntax of Ternary Operator.

Condition ? return if true : return if false

Example

const Component_Temp=(props)=>{
return(
   <div>
      { A === B?
      <Component_A/>:
      <Component_B/> }
   </div>
  );
}
export default Component_Temp;

wait.gif

Another way would be using Short-Circuit AND (&&) Operator.

Here in this method, a Condition is given on the left-hand side of the Logical AND (&&), if it's true then the right-hand side is evaluated and the Element/Component specified there is rendered.

Syntax of Short-Circuit AND (&&) Operator.

Condition && Evaluated if true

Example

const Component_Temp=(props)=>{
return(
   <div>
         {A === B && <Component_A/>}
         {A !== B && <Component_B/>}
   </div>
  );
}
export default Component_Temp;

amazing2.gif

Ok now the last one, this is my personal favorite. Using React Element Variables.

In this method, we define a variable with an HTML or React Element/Component and if the specified condition will be true, we will change the content of that variable.

Example

const Component_Temp=(props)=>{
let componentToDisplay = <p>Content</p>;
if(A === B){
   componentToDisplay = <Component_A/>
}   
else if(A !== B){
   componentToDisplay = <Component_B/>
}
return ( 
   <div>
       {componentToDisplay};
   </div>
  );
}
export default Component_Temp;

amazing.gif

Being a Fan of Leaner JSX code snippet, I like this approach. It makes the JSX look cleaner and less confusing because the conditions are checked outside it.

If this blog helped you, please give it a thumbs up👍.

Thank you.