Concept Flow - If conditions in JSX
Start Render
Evaluate Condition
Render JSX
Update DOM
React checks the condition during render. If true, it shows one JSX part; if false, it shows another or nothing.
function Greeting({ isLoggedIn }) { return ( <div> {isLoggedIn ? <p>Welcome back!</p> : <p>Please sign in.</p>} </div> ); }
| Step | isLoggedIn | Condition (isLoggedIn ?) | Rendered JSX | DOM Update |
|---|---|---|---|---|
| 1 | true | true | <p>Welcome back!</p> | Shows 'Welcome back!' message |
| 2 | false | false | <p>Please sign in.</p> | Shows 'Please sign in.' message |
| 3 | null | false | <p>Please sign in.</p> | Shows 'Please sign in.' message |
| 4 | undefined | false | <p>Please sign in.</p> | Shows 'Please sign in.' message |
| 5 | 0 | false | <p>Please sign in.</p> | Shows 'Please sign in.' message |
| 6 | '' | false | <p>Please sign in.</p> | Shows 'Please sign in.' message |
| Variable | Start | After 1 | After 2 | After 3 | After 4 | After 5 | After 6 |
|---|---|---|---|---|---|---|---|
| isLoggedIn | undefined | true | false | null | undefined | 0 | '' |
JSX if conditions use JavaScript expressions inside braces. Use ternary: condition ? JSX if true : JSX if false. Falsy values (false, 0, '', null, undefined) render the else part. Truthy values render the true part. This controls what React shows on screen.