|7. Conditional Rendering
Chapter 7React Tutorial~1 min read

Conditional Rendering

Conditional Rendering — Condition नुसार UI

Conditional rendering म्हणजे condition नुसार वेगवेगळे UI दाखवणे. User logged in आहे का? Data load झाले का? Error आहे का? — यानुसार UI बदलतो. React मध्ये यासाठी अनेक techniques आहेत.

1. if/else — Complex Logic साठी

if statement — return मध्ये

jsx
function Welcome({ isLoggedIn }) {
  if (!isLoggedIn) {
    return (
      <div>
        <h1>Please Login</h1>
        <button>Login</button>
      </div>
    );
  }

  return (
    <div>
      <h1>Welcome back! 👋</h1>
      <button>Logout</button>
    </div>
  );
}

// Loading states
function Profile({ status, user }) {
  if (status === "loading") return <p>Loading... ⏳</p>;
  if (status === "error")   return <p>काही error आली! ❌</p>;
  return <h1>{user.name}</h1>;
}

2. Ternary Operator — JSX आत

condition ? trueUI : falseUI

jsx
function UserBadge({ isPremium, name }) {
  return (
    <div>
      <h2>{name}</h2>

      {/* Ternary — दोन options मधून निवड */}
      {isPremium
        ? <span>⭐ Premium Member</span>
        : <span>Free Member</span>
      }

      {/* Inline ternary */}
      <p className={isPremium ? "text-gold" : "text-gray"}>
        {isPremium ? "All features unlocked!" : "Upgrade करा"}
      </p>
    </div>
  );
}

3. && Operator — एकच Option

condition && <JSX> — show only if true

jsx
function ShoppingCart({ items, isLoggedIn, hasError }) {
  return (
    <div>
      {/* फक्त तेव्हाच दाखव जेव्हा true */}
      {hasError && <p className="text-red">Error आली!</p>}

      {isLoggedIn && <p>Welcome back!</p>}

      {/* items रिकामे असेल तर message दाखव */}
      {items.length === 0 && (
        <p>Cart रिकामी आहे. Shopping करा! 🛒</p>
      )}

      {/* items असतील तर count दाखव */}
      {items.length > 0 && (
        <p>{items.length} items cart मध्ये आहेत</p>
      )}
    </div>
  );
}

4. Component Switching

वेगळे pages/screens दाखवणे

jsx
function App() {
  const [page, setPage] = useState("home");

  function renderPage() {
    switch (page) {
      case "home":    return <HomePage />;
      case "about":   return <AboutPage />;
      case "contact": return <ContactPage />;
      default:        return <NotFoundPage />;
    }
  }

  return (
    <div>
      <nav>
        <button onClick={() => setPage("home")}>Home</button>
        <button onClick={() => setPage("about")}>About</button>
        <button onClick={() => setPage("contact")}>Contact</button>
      </nav>
      {renderPage()}
    </div>
  );
}

Key Points — लक्षात ठेवा

  • if/else — complex logic, multiple conditions, early returns
  • Ternary ? : — दोन options, JSX आत
  • && — एकच option, condition true असेल तरच दाखव
  • 0 && <JSX> — सावधान! 0 render होतो. !! वापरा किंवा > 0 check
  • null, undefined, false — React render करत नाही
0/12 chapters पूर्ण