🚀 Day 12/30 – Conditional Rendering in React Building dynamic UIs based on conditions ⚡ Today’s focus was on Conditional Rendering — a core concept that makes React apps interactive and user-driven. 🔍 What I learned: ✅ Conditional Rendering allows UI to change based on state ✅ React relies on pure JavaScript logic (if, ternary, &&) inside JSX ✅ Essential for real-world features like authentication, loaders, and error handling 💻 Example: function App() { const isLoggedIn = true; return ( <> {isLoggedIn ? <h1>Welcome User</h1> : <h1>Please Login</h1>} </> ); } 🔥 Common Patterns: 1️⃣ Ternary Operator (Most Used) {condition ? <A /> : <B />} 2️⃣ Logical AND (&&) {isLoggedIn && <Dashboard />} 3️⃣ If Statement (Outside JSX) if (!user) return <Login />; 💡 Real-World Use Cases: ✔️ Showing a loader while fetching data ✔️ Displaying error messages ✔️ Rendering dashboard after login ⚡ Advanced Insight: React doesn’t introduce new syntax for conditions — it simply leverages JavaScript inside JSX, making it flexible and powerful. 🔑 Key Takeaway: 👉 Conditional Rendering = Controlling what users see based on application state. 💬 Curious — which approach do you use more: ternary or if/else logic? #React #FrontendDevelopment #JavaScript #WebDevelopment #LearningInPublic
React Conditional Rendering Essentials
More Relevant Posts
-
🚀 Understanding Conditional Rendering in React — Simplified! In real-world apps, UI is rarely static. 👉 Show loading 👉 Hide elements 👉 Display data conditionally That’s where Conditional Rendering comes in. 💡 What is Conditional Rendering? It allows you to render UI based on conditions. 👉 Just like JavaScript conditions—but inside JSX ⚙️ Common Ways to Do It 🔹 1. if/else (outside JSX) if (isLoggedIn) { return <Dashboard />; } else { return <Login />; } 🔹 2. Ternary Operator return isLoggedIn ? <Dashboard /> : <Login />; 🔹 3. Logical AND (&&) {isLoggedIn && <Dashboard />} 👉 Renders only if condition is true 🔹 4. Multiple Conditions {status === "loading" && <Loader />} {status === "error" && <Error />} {status === "success" && <Data />} 🧠 Real-world use cases ✔ Authentication (Login / Dashboard) ✔ Loading states ✔ Error handling ✔ Feature toggles ✔ Dynamic UI 🔥 Best Practices (Most developers miss this!) ✅ Use ternary for simple conditions ✅ Use && for single-condition rendering ✅ Keep JSX clean and readable ❌ Avoid deeply nested ternaries ❌ Don’t mix too many conditions in one place ⚠️ Common Mistake // ❌ Hard to read return isLoggedIn ? isAdmin ? <AdminPanel /> : <UserPanel /> : <Login />; 👉 Extract logic instead 💬 Pro Insight Conditional rendering is not just about showing UI— 👉 It’s about controlling user experience dynamically 📌 Save this post & follow for more deep frontend insights! 📅 Day 10/100 #ReactJS #FrontendDevelopment #JavaScript #WebDevelopment #ReactHooks #SoftwareEngineering #100DaysOfCode 🚀
To view or add a comment, sign in
-
-
🧠 Why map() in React Needs a key (Beyond Just a Warning) Most developers know this warning: “Each child in a list should have a unique key” So they do this 👇 {items.map((item, index) => ( <li key={index}>{item}</li> ))} Warning gone ✅ Problem solved ❌ 🔍 What actually happens? React uses key to track elements between renders. If you use index: 👉 React assumes position = identity ⚠️ The hidden bug const items = ["A", "B", "C"]; Now remove "A". New list: ["B", "C"] With index as key: "B" becomes index 0 React thinks it’s still "A" 👉 UI can behave incorrectly 👉 State can get mixed up ✅ Correct approach {items.map(item => ( <li key={item.id}>{item.name}</li> ))} 👉 Use a stable, unique key 🎯 Real Insight key is not for React warnings. It’s for correct UI behavior. 💥 Senior-level understanding Bad keys don’t always break immediately. They break when: Items reorder Items are removed State is attached to elements That’s why bugs feel random. #ReactJS #FrontendDevelopment #JavaScript #CleanCode #WebDevelopment #CodingTips #LearningInPublic
To view or add a comment, sign in
-
Why does the same React component behave differently on each render? You wrote it once.... Same code. Same props. But sometimes: → It shows different data → It lags → It resets Looks like a bug… But often, it’s just React doing its job. 𝗛𝗲𝗿𝗲’𝘀 𝘄𝗵𝗮𝘁’𝘀 𝗮𝗰𝘁𝘂𝗮𝗹𝗹𝘆 𝗵𝗮𝗽𝗽𝗲𝗻𝗶𝗻𝗴: Every time a parent component re-renders — every child inside it re-renders too. React re-runs the component function to check what changed. Even if props look the same. 𝗛𝗼𝘄 𝘁𝗼 𝘁𝗲𝗹𝗹 𝗥𝗲𝗮𝗰𝘁 𝘁𝗼 𝘀𝗸𝗶𝗽 𝗿𝗲-𝗿𝗲𝗻𝗱𝗲𝗿: Wrap your component in React.memo() const Card = React.memo(({ name }) => { return <div>{name}</div> } Now React skips re-rendering Card unless its props actually change. Same component. Smarter behavior. 𝗥𝗲-𝗿𝗲𝗻𝗱𝗲𝗿 𝗵𝗮𝗽𝗽𝗲𝗻𝘀 𝘄𝗵𝗲𝗻: → State changes → Props change → Parent re-renders `React.memo` stops the third one (when props are stable). 𝗣𝗿𝗼 𝘁𝗶𝗽: If memo isn't skipping, check if you're passing new functions/objects/arrays every time — those break the shallow compare. Fix with 𝘶𝘴𝘦𝘊𝘢𝘭𝘭𝘣𝘢𝘤𝘬/𝘶𝘴𝘦𝘔𝘦𝘮𝘰. Understanding this is the difference between “it works” and “it scales.” Save this — next time re-renders confuse you, you’ll know exactly why. Have you ever had unexpected re-renders break your app? Drop it below 👇 Follow for more React concepts explained simply. #reactjs #webdevelopment #javascript #MERN
To view or add a comment, sign in
-
-
Most React devs know when to use useLayoutEffect. Almost none can explain why it behaves differently. The answer lives inside the commit phase. React's update cycle has two big stages: render (reconcile, diff, no DOM writes) and commit (apply changes, run effects). Commit itself splits into 3 sub-phases: → Before Mutation — read DOM snapshots before anything changes → Mutation — insert, update, remove DOM nodes → Layout — refs attached, useLayoutEffect fires here, synchronously useEffect never runs in the Layout pass. During reconciliation, React builds an Effect List — fiber nodes tagged with pending work. Fibers marked HookLayout flush during the Layout sub-phase. Fibers marked HookPassive get handed to the scheduler and run after the browser paints. React docs put it directly: "React guarantees that the code inside useLayoutEffect and any state updates scheduled inside it will be processed before the browser repaints the screen." Classic case where this matters: tooltip positioning. With useEffect, users catch a flicker — the tooltip renders in the wrong spot, then jumps. With useLayoutEffect, both renders complete before any pixel changes on screen. The tradeoff: useLayoutEffect blocks paint. Use it only when you need to measure or mutate the DOM before the user sees the frame. Data fetching, subscriptions, analytics — those belong in useEffect. One gotcha: useLayoutEffect is a no-op in SSR. React will warn you. Guard with typeof window !== 'undefined' or default to useEffect in universal code. #frontend #reactjs #javascript #typescript #frontenddevelopment #softwareengineering #webdevelopment
To view or add a comment, sign in
-
-
useState vs useRef in React If you're working with React, you've probably used both useState and useRef, but understanding when and why to use each can seriously level up your code. Let’s break it down 1️⃣ useState useState is used to manage state that affects rendering. When state changes, the component re-renders. Example: const [count, setCount] = useState(0); Key Points: -Triggers re-render on update -Used for UI data (what you see on screen) -Updates are asynchronous -Causes component lifecycle to run again Use it when: -You want to update UI dynamically -You need React to reflect changes on screen 2️⃣useRef useRef is used to store mutable values that persist across renders, without causing re-renders. Example: const countRef = useRef(0); Key Points: -Does NOT trigger re-render -Stores values across renders -Can directly access DOM elements -Updates are synchronous Use it when: -You need to persist a value without re-rendering -You want to access or manipulate DOM -You want to store previous values Think of it like this: -useState : “I want React to know and show this change” -useRef : “I want to remember something without telling React” Pro Tip Using useRef instead of useState in performance-critical scenarios can prevent unnecessary re-renders especially in large components. If you found this helpful, drop a 👍 or share your thoughts! #ReactJS #FrontendDevelopment #JavaScript #WebDevelopment #Learning #CodingJourney
To view or add a comment, sign in
-
-
React Folder Structure That Scales 🚀 Most beginners start like this: src/ ├── Home.jsx ├── Navbar.jsx ├── Login.jsx ├── api.js ├── redux.js It works at first. But after adding authentication, APIs, Redux, hooks, layouts, and 20+ pages, finding a file becomes frustrating. That’s why folder structure matters. src/ ├── api/ ├── assets/ ├── components/ │ ├── common/ │ ├── forms/ │ └── ui/ ├── config/ ├── context/ ├── features/ │ ├── auth/ │ ├── dashboard/ │ ├── profile/ │ └── products/ ├── hooks/ ├── layout/ ├── pages/ ├── redux/ ├── routes/ ├── services/ ├── utils/ ├── .env ├── .env.development ├── .env.production └── App.jsx Why this structure? • components/→ Reusable UI • pages/→ Full screens • api/ & services/→ API logic • redux/ → Global state • hooks/ → Reusable logic • routes/ → Clean routing • features/ → Keep each module together For large apps, I prefer feature-based architecture: features/ └── auth/ ├── components/ ├── pages/ ├── hooks/ ├── services/ └── authSlice.js This keeps auth-related files in one place instead of searching through 5 different folders. Best rule: • Small project → Simple structure • Medium project → Organized folders • Large project → Feature-based architecture Clean folder structure = easier debugging + faster development + better teamwork. How do you organize your React projects? #react #reactjs #frontend #webdevelopment #javascript #redux #vite
To view or add a comment, sign in
-
-
📘 How React Re-renders Work (and How to Avoid Unnecessary Re-renders) 🔹 What is a Re-render? A re-render happens when React updates a component and reflects changes in the UI. This usually occurs when: ✔ State changes (useState) ✔ Props change ✔ Parent component re-renders 🔹Example const [count, setCount] = useState(0); <button onClick={() => setCount(count + 1)}> Click Me </button> 👉 Every time count updates → component re-renders 🔹 Important When a component re-renders: 👉 All its child components also re-render (by default) Even if their data hasn’t changed ⚠️ 🔹 Real Problem Unnecessary re-renders can: ❌ Slow down performance ❌ Cause lag in large applications ❌ Trigger unwanted API calls 🔹 How to Avoid Unnecessary Re-renders ✅ 1. Use React.memo export default React.memo(MyComponent); Prevents re-render if props haven’t changed. ✅ 2. Use useCallback for functions const handleClick = useCallback(() => { doSomething(); }, []); Prevents function recreation on every render. ✅ 3. Use useMemo for expensive calculations const result = useMemo(() => computeValue(data), [data]); Avoids recalculating values unnecessarily. ✅ 4. Keep State Minimal Only store what is necessary. Too much state = more re-renders. 🔹 Real-World Insight In large apps (dashboards, tables, filters): 👉 Poor render optimization can impact user experience heavily. Small optimizations here make a big difference. 👉 Re-renders are not bad—but unnecessary re-renders are. #ReactJS #FrontendDevelopment #Performance #JavaScript #WebDevelopment
To view or add a comment, sign in
-
-
🚀 Controlled vs Uncontrolled Components in React — Real-World Perspective Most developers learn: 👉 Controlled = React state 👉 Uncontrolled = DOM refs But in real applications… 👉 The choice impacts performance, scalability, and maintainability. 💡 Quick Recap 🔹 Controlled Components: Managed by React state Re-render on every input change 🔹 Uncontrolled Components: Managed by the DOM Accessed via refs ⚙️ The Real Problem In large forms: ❌ Controlled inputs → Too many re-renders ❌ Uncontrolled inputs → Hard to validate & manage 👉 So which one should you use? 🧠 Real-world Decision Rule 👉 Use Controlled when: ✔ You need validation ✔ UI depends on input ✔ Dynamic form logic exists 👉 Use Uncontrolled when: ✔ Performance is critical ✔ Minimal validation needed ✔ Simple forms 🔥 Performance Insight Controlled input: <input value={name} onChange={(e) => setName(e.target.value)} /> 👉 Re-renders on every keystroke Uncontrolled input: <input ref={inputRef} /> 👉 No re-render → better performance ⚠️ Advanced Problem (Most devs miss this) 👉 Large forms with 20+ fields Controlled approach: ❌ Can slow down typing 👉 Solution: ✔ Hybrid approach ✔ Use libraries (React Hook Form) 🧩 Industry Pattern Modern apps often use: 👉 Controlled logic + Uncontrolled inputs internally Example: ✔ React Hook Form ✔ Formik (optimized patterns) 🔥 Best Practices ✅ Use controlled for logic-heavy forms ✅ Use uncontrolled for performance-critical inputs ✅ Consider form libraries for scalability ❌ Don’t blindly use controlled everywhere 💬 Pro Insight (Senior Thinking) 👉 This is not about “which is better” 👉 It’s about choosing the right tool for the problem 📌 Save this post & follow for more deep frontend insights! 📅 Day 17/100 #ReactJS #FrontendDevelopment #JavaScript #ReactHooks #PerformanceOptimization #SoftwareEngineering #100DaysOfCode 🚀
To view or add a comment, sign in
-
-
Excited to share my latest project — a full-featured Weather App built with React! This project helped me deepen my understanding of browser APIs, async data fetching, and clean UI design. 🛠️ Built with: • React & Bootstrap 5 • Open-Meteo & Nominatim APIs • Geolocation API 🌟 Key Features: • City search with debounced input • Current location detection • Hourly & 7-day forecasts • Sunrise/sunset, UV index, wind & pressure data 🔗 Live: https://lnkd.in/gBYT_8HZ 💻 Code: https://lnkd.in/g5AcZG-r Feedback is always welcome — happy to connect with fellow developers! #React #JavaScript #WebDev #Frontend #Programming
To view or add a comment, sign in
-
WebAssembly Explained: Faster, Smarter Web Apps ~ I recently spent some time understanding WebAssembly (Wasm), and it completely changed how I think about performance on the web. WebAssembly is often described as a "low-level binary format," but in simpler terms—it’s a way to run super-fast code in the browser without relying only on JavaScript. What clicked for me is this: Wasm isn’t here to replace JavaScript. It works with it. Think of JavaScript as the brain handling UI and interactions, while WebAssembly acts like a high-performance engine doing the heavy lifting behind the scenes. Here’s why that matters: • You can write code in languages like Rust or C++ • Compile it into a .wasm file • Run it in the browser at near-native speed That opens up a whole new category of web applications. I’ve started noticing Wasm behind things like: • Browser-based games that feel like desktop apps • Video and image processing tools running smoothly online • Complex simulations and developer tools directly in the browser It’s basically shrinking the gap between web apps and native software. But it’s not perfect. Wasm still depends on JavaScript for many browser-level interactions, and debugging isn’t as straightforward yet. Also, for simple UI logic, JavaScript is still the better choice. So the real takeaway for me wasn’t "Wasm is better than JavaScript." It was this: Use the right tool for the right job. If performance becomes a bottleneck, WebAssembly is a powerful option to unlock the next level. I’m curious—have you come across a real-world app where WebAssembly made a noticeable difference? #WebAssembly #WebDevelopment #JavaScript #PerformanceEngineering #FrontendDevelopment #SoftwareEngineering #WebApps #TechLearning
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development