⚛️ Top 150 React Interview Questions – 33/150 📌 Topic: Controlled vs Uncontrolled Components 🔹 WHAT is it? This topic describes how form data (input values) is handled in React. Controlled Component: The input value is driven by React State. React is the boss of the data. Uncontrolled Component: The input value is handled by the DOM itself. You read the value only when needed using a ref. 🔹 WHY is it designed this way? React provides these two patterns to balance control and simplicity. Controlled (Standard): Needed for instant validation, showing errors while typing, or disabling buttons until the form is valid. Uncontrolled (Edge Case): Useful when integrating with non-React libraries or when you only care about the value at form submission. 🔹 HOW do you do it? (Implementation) Controlled Component (using State): function ControlledForm() { const [name, setName] = useState(""); return ( <input value={name} onChange={(e) => setName(e.target.value)} /> ); } Uncontrolled Component (using Ref): function UncontrolledForm() { const inputRef = useRef(null); const handleSubmit = () => { alert("Name: " + inputRef.current.value); }; return ( <> <input ref={inputRef} type="text" /> <button onClick={handleSubmit}>Submit</button> </> ); } 🔹 WHERE are the best practices? Default to Controlled: Use Controlled Components in most cases. They are more predictable and easier to manage. Use for Validation: Real-time features like character count or password strength checks require Controlled components. defaultValue: In Uncontrolled components, use defaultValue instead of value so the DOM manages updates. 📝 Summary for your notes: A Controlled component is like a Puppet 🪀 — it moves only when React (State) pulls the strings. An Uncontrolled component is like a Wild Animal 🐾 — it does its own thing, and you check on it using a Ref. 👇 Comment “React” if this series is helping you 🔁 Share with someone preparing for React interviews #ReactJS #FrontendDevelopment #ReactInterview #JavaScript #WebDevelopment #LearningInPublic #Top150ReactQuestions
React Controlled vs Uncontrolled Components Explained
More Relevant Posts
-
⚛️ Top 150 React Interview Questions – 43/150 📌 Topic: componentDidMount 🔹 WHAT is it? componentDidMount() is a lifecycle method in Class Components. It runs exactly once, immediately after the component is mounted (inserted into the DOM). In simple terms: 👉 The component is now visible on the screen 👉 The HTML is fully rendered in the browser 🔹 WHY is it designed this way? In React, the render() method must remain pure, meaning it should only return JSX and perform no side effects. componentDidMount() exists as a safe place for side effects. DOM Access: The component is already in the DOM, so you can safely access elements. Data Loading: Perfect place to fetch data from APIs so it runs only once when the component loads. Subscriptions: Ideal for starting timers, WebSockets, or event listeners when the component appears. 🔹 HOW do you use it? (Implementation) class UserList extends React.Component { componentDidMount() { fetch('https://lnkd.in/gEvy2BDJ') .then(res => res.json()) .then(data => this.setState({ users: data })); console.log("Component is now live!"); } render() { return <div>Users Loaded</div>; } } 🔹 WHERE are the best practices? When to Use: • Initial API calls • Starting timers or subscriptions • Initializing third-party libraries (Google Maps, Charts, D3) State Updates: Calling this.setState() is allowed here. It may cause one extra render, but users will not see any UI flicker. Modern Replacement: In Functional Components, this logic is replaced by: useEffect(() => { // componentDidMount logic }, []); 📝 Summary for your notes: componentDidMount is like a housewarming party 🏠 The house (DOM) is ready, people have arrived — now you bring the food (data) and turn on the music (timers). 👇 Comment “React” if this series is helping you 🔁 Share with someone preparing for React interviews #ReactJS #ReactInterview #FrontendDevelopment #JavaScript #LearningInPublic #Top150ReactQuestions
To view or add a comment, sign in
-
-
⚛️ Top 150 React Interview Questions — 46/150 📌 Topic: Controlled Components (Deep Dive) 🔹 WHAT is it? A Controlled Component is a form element (input, textarea, select) whose value is fully controlled by React State. Instead of the DOM managing the current value, React becomes the Single Source of Truth. 🔹 WHY is it designed this way? In normal HTML, inputs manage their own state. In React, we want full control over user input. Instant Validation Validate every keystroke (e.g., block numbers in a name field). Predictable Data Flow Since data lives in state, it’s always ready for API calls—no DOM querying. Dynamic UI Control Easily clear inputs, disable buttons, or reflect input changes live on screen. 🔹 HOW do you implement it? A Controlled Component needs two things: 1️⃣ A value prop (state → input) 2️⃣ An onChange handler (input → state) import { useState } from "react"; function MyForm() { const [name, setName] = useState(""); const handleChange = (e) => { setName(e.target.value.toUpperCase()); }; return ( <form> <input type="text" value={name} onChange={handleChange} /> <p>State value: {name}</p> </form> ); } 🔹 WHERE should you use it? Use When You need live validation, formatting, or conditional form submission. One Handler for Many Inputs Use the name attribute to handle multiple fields dynamically. Performance Tip For very large forms, consider: Uncontrolled Components (useRef) Libraries like React Hook Form 📝 Summary for your notes A Controlled Component is like a Remote-Controlled Car 🚗 The car (Input) doesn’t move on its own. Every movement is controlled by the Remote (React State) — precise and predictable. 👇 Comment “React” if this series is helping you 🔁 Share with someone preparing for React interviews #ReactJS #ReactInterview #FrontendDevelopment #JavaScript #FormsInReact #LearningInPublic #Top150ReactQuestions
To view or add a comment, sign in
-
-
Everyone’s sharing the questions they faced in interviews… So here’s something different 👀 A snapshot of interview-level React & JavaScript questions — with clear answers. 🔹 Why React uses Virtual DOM? Because touching the real DOM is expensive. React diffs changes in memory first and updates only what’s needed. 🔹 Class vs Functional Components? Performance is similar. Functional components win for simplicity, hooks, and modern optimizations. 🔹 Why map() works in JSX but forEach() doesn’t? JSX needs an array to render. map() returns one. forEach() doesn’t. 🔹 What actually causes unnecessary re-renders? New object/function references, parent re-renders, and context updates. 🔹 How do you optimize large tables in React? Virtualization (render only what’s visible) + memoization. 🔹 Does React re-render mean DOM updates every time? Nope. Re-render ≠ re-paint. Virtual DOM decides what really changes. 🔹 Promise.all — what if one API fails? One failure rejects everything. Use Promise.allSettled() when partial success matters. 🔹 Best way to sync logout across multiple tabs? localStorage + storage event (simple and effective). 🔹 Where should auth tokens live on the client? Prefer HttpOnly cookies. LocalStorage is not for sensitive data. 🔹 Arrow functions vs normal functions — performance issue? Not really. The real issue is new function references on every render. 💡 Interviews don’t test what you’ve memorized — they test how well you understand the fundamentals. If you’re preparing for React / Frontend interviews, save this 📌 And if you want a part 2 (with code examples or system-design-level questions) — let me know 👇 #React #FrontendInterview #JavaScript #WebDevelopment #Performance #ReactJS #InterviewPrep 🚀
To view or add a comment, sign in
-
⚛️ Top 150 React Interview Questions – 34/150 📌 Topic: Higher-Order Components (HOC) 🔹 WHAT is it? A Higher-Order Component (HOC) is an advanced pattern in React for reusing component logic. It is not part of the React API. It is a pattern where a function takes a component as an argument and returns a new, enhanced component. 🔹 WHY is it designed this way? HOCs follow the Don’t Repeat Yourself (DRY) principle. Reusability: Instead of writing the same logic (like authentication checks) in multiple components, you write it once in an HOC and reuse it. Separation of Concerns: UI components stay clean and focus only on rendering, while the HOC handles extra logic like data fetching, analytics, or permissions. 🔹 HOW do you do it? (The Implementation) An HOC is simply a function that wraps another component. Example: withLoading HOC // 1. The HOC (Wrapper) function withLoading(Component) { return function EnhancedComponent({ isLoading, ...props }) { if (isLoading) return <p>Loading...</p>; return <Component {...props} />; }; } // 2. Regular Component const UserProfile = ({ name }) => <h1>User: {name}</h1>; // 3. Enhanced Component const ProfileWithLoading = withLoading(UserProfile); // Usage: // <ProfileWithLoading isLoading={true} name="John" /> 🔹 WHERE are the best practices? When to Use: Authentication, Authorization, Logging, Analytics, or shared UI layouts. Don’t Mutate: Never modify the original component. Always return a new one. Pass Unrelated Props: Use ...props so the wrapped component works normally. Don’t Use Inside Render: Defining HOCs inside render causes unnecessary unmounting and remounting. 📝 Summary for your notes: An HOC is like a Phone Case 📱 The phone (Component) stays the same. The case (HOC) adds extra features without changing the phone itself. 👇 Comment “React” if this series is helping you 🔁 Share with someone preparing for React interviews #ReactJS #FrontendDevelopment #ReactInterview #JavaScript #WebDevelopment #LearningInPublic #Top150ReactQuestions
To view or add a comment, sign in
-
-
⚛️ Top 150 React Interview Questions – 41/150 📌 Topic: Lifecycle Methods in Class Components 🔹 WHAT is it? Lifecycle Methods are special functions in Class Components that run automatically at different stages of a component’s life. Every component goes through three main phases: Mounting (Birth) Updating (Growth) Unmounting (Death) These methods let you hook into each phase and run code at the right time. 🔹 WHY is it designed this way? React provides lifecycle methods so you can manage side effects properly. Resource Management: Start API calls, timers, or subscriptions exactly once when a component loads. Synchronization: Update the DOM or refetch data when props or state change. Cleanup: Prevent memory leaks by stopping timers or removing listeners before the component is destroyed. 🔹 HOW do you do it? (Core Methods) The three most important lifecycle methods are: 1️⃣ componentDidMount (After Birth) Runs once after the component is added to the DOM. Best for API calls and subscriptions. componentDidMount() { console.log("Component is ready!"); } 2️⃣ componentDidUpdate (After Change) Runs when props or state change. componentDidUpdate(prevProps) { if (prevProps.userId !== this.props.userId) { this.fetchData(this.props.userId); } } 3️⃣ componentWillUnmount (Before Death) Runs just before the component is removed. Used for cleanup. componentWillUnmount() { clearInterval(this.timer); } 🔹 WHERE are the best practices? When to Use: Mostly in legacy codebases or when working with existing Class Components. Avoid Side Effects in render(): render() should stay pure — no API calls or state changes. Always Cleanup: Remove event listeners and timers in componentWillUnmount to keep apps fast. 📝 Summary for your notes: Lifecycle Methods are like a Daily Routine 🕒 componentDidMount → Waking up componentDidUpdate → Adjusting during the day componentWillUnmount → Turning off lights before sleep 👇 Comment “React” if this series is helping you 🔁 Share with someone revising React fundamentals #ReactJS #ReactInterview #LifecycleMethods #FrontendDevelopment #JavaScript #LearningInPublic #Top150ReactQuestions
To view or add a comment, sign in
-
-
Some Basic React Interview Questions! Question 1: What is the Virtual DOM in React? The Virtual DOM is a lightweight JavaScript representation of the real DOM. React updates it first and efficiently applies only required changes to the real DOM. Question 2 : What is a Rest Parameter in JavaScript? A rest parameter (...args) allows a function to accept multiple arguments and collect them into a single array, making functions more flexible and cleaner. Question 3: If an object is created using const, does changing its properties cause an error? No. You can modify properties of a const object. An error occurs only when you try to reassign the object itself. Question 4 : Why is React JS used? React JS is used to build fast, scalable, and reusable user interfaces using a component-based architecture and an efficient Virtual DOM. Question 5 : What is “input search while typing,” and why are debouncing and throttling important? Input search while typing updates results instantly. Debouncing and throttling limit function calls, improving performance and reducing unnecessary API requests. Question 6 : What are Cookies, Session Storage, and Local Storage? Cookies store small data sent with server requests. Session storage stores data temporarily per tab. Local storage stores data persistently in the browser. Question 7: What are find() and apply() methods in JavaScript? find() returns the first array element that matches a condition. apply() calls a function with a specific this context and arguments passed as an array. 👉 Follow Satyam Raj for more React & JavaScript interview preparation 👉 Like • Comment • Share to help others #JavaScript #ReactJS #FrontendDevelopment #WebDevelopment #InterviewPreparation #CodingInterviews
To view or add a comment, sign in
-
⚛️ Top 150 React Interview Questions – 47/150 📌 Topic: Uncontrolled Components (Deep Dive) 🔹 WHAT is it? An Uncontrolled Component is a form element where the data is handled by the DOM itself, not by React state. Instead of tracking every keystroke, React accesses the value only when needed using a ref (usually on submit). 🔹 WHY is it designed this way? Sometimes controlling every input change is unnecessary. Performance: In very large forms, updating state on every keystroke can cause frequent re-renders. Uncontrolled components avoid this overhead. Integration: They work better with non-React libraries (like jQuery plugins) that manage their own internal state. Simplicity: For simple forms (search boxes, one-time inputs), uncontrolled components reduce boilerplate code. 🔹 HOW do you do it? (Implementation) You use the useRef hook to directly access the DOM value. import { useRef } from 'react'; function SimpleSignup() { const nameRef = useRef(null); const handleSubmit = (e) => { e.preventDefault(); alert(nameRef.current.value); }; return ( <form onSubmit={handleSubmit}> <input type="text" ref={nameRef} defaultValue="Guest" /> <button type="submit">Submit</button> </form> ); } 🔹 WHERE are the best practices? When to Use: • File inputs (always uncontrolled in React) • Very large forms where performance matters • Inputs needed only on submit Default Values: Use defaultValue, not value. Don’t Overuse: Avoid uncontrolled components when you need real-time validation or dynamic UI updates. 📝 Summary for your notes Uncontrolled Components are like a Suggestion Box 🗳️ React doesn’t watch you write the note. It simply opens the box and reads it only when you submit. 👇 Comment “React” if this series is helping you 🔁 Share with someone preparing for React interviews #ReactJS #FrontendDevelopment #ReactInterview #JavaScript #WebDevelopment #LearningInPublic #Top150ReactQuestions
To view or add a comment, sign in
-
-
Preparing for a JavaScript interview? Here’s a comprehensive list of the most commonly asked questions you should be ready for: 🔥 Core JavaScript - Difference between `var`, `let`, and `const` - What is hoisting? - What is closure? - Explain the `this` keyword - Difference between `==` and `===` - What is scope (global, function, block)? - Difference between null and undefined - What is prototype and prototype chain? - What is strict mode? ⚡ Functions & Objects - `call()`, `apply()`, and `bind()` - Arrow functions vs normal functions - Shallow copy vs deep copy - Object destructuring - Spread vs rest operator ⏳ Async JavaScript - Synchronous vs asynchronous JS - What are callbacks? - What are promises? - Promise states & chaining - `async/await` - What is the event loop? 🌐 DOM & Browser - What is event delegation? - Bubbling vs capturing - How does DOM manipulation work? - `localStorage`, `sessionStorage`, `cookies` - What is CORS? 🚀 Performance & Best Practices - Debouncing vs throttling - Memoization - Garbage collection - Memory leaks - Immutability - Pure functions Make sure to familiarize yourself with these topics to boost your confidence in your upcoming interviews. #JavaScript #Frontend #WebDevelopment #TechInterview #CodingInterview #JS #Developers
To view or add a comment, sign in
-
If someone asked you to implement ReactDOM.render from scratch in a 45-minute interview… would you know where to start? This is a classic challenge used by companies like Meta to separate developers who use frameworks from engineers who truly understand them. Understanding the tree structure At its core, a Virtual DOM is simply a tree of plain JavaScript objects representing the real DOM. Instead of heavy DOM nodes, you work with lightweight objects containing properties like tagName, attrs, and children. Converting this object tree into the real DOM isn’t magic, it’s just structured tree traversal. The implementation strategy To build your own render function, you only need to chain three native operations: 1. Identify the node type -If the virtual node is a string → document.createTextNode -If it’s an object → document.createElement 2. Handle the attributes Loop through the attrs object and apply them using setAttribute. 3. Recursion is the engine Iterate through the children array, call the render function recursively, and append each result using appendChild. That’s it. The “magic” behind libraries like React is really just strong JavaScript fundamentals + data structures. Most candidates memorise hooks and APIs. Few can build the core from first principles. And that’s exactly what interviews test. Have you ever read the source code of your favourite framework? What surprised you the most? For more front end interview breakdowns like this, check out GreatFrontEnd. We focus on the concepts that actually get asked in real interviews. https://lnkd.in/dDNuYcKB #frontendinterviews #javascript #reactjs #webdevelopment #greatfrontend
To view or add a comment, sign in
-
45-minute interview challenge: “Implement ReactDOM.render from scratch.” Sounds scary at first — until you realize what’s really happening under the hood. At its core, React’s rendering isn’t magic. A Virtual DOM is just a tree of plain JavaScript objects. Each node represents either: A text node Or an element with tagName, attrs, and children Rendering this tree into the real DOM comes down to three simple ideas: ✅ Identify the node type String → document.createTextNode Object → document.createElement ✅ Apply attributes Loop over props and attach them with setAttribute. ✅ Use recursion Traverse children, call render again, and appendChild each result. That’s literally it — structured tree traversal. My takeaway: Frameworks abstract complexity, but interviews like this test whether you understand the fundamentals beneath them. Once you break it down, you realize React rendering is just: 👉 Objects 👉 Recursion 👉 Native DOM APIs As frontend engineers, it’s powerful to know why things work — not just how to use them. Great reminder from GreatFrontEnd Always worth revisiting the basics. 🚀
If someone asked you to implement ReactDOM.render from scratch in a 45-minute interview… would you know where to start? This is a classic challenge used by companies like Meta to separate developers who use frameworks from engineers who truly understand them. Understanding the tree structure At its core, a Virtual DOM is simply a tree of plain JavaScript objects representing the real DOM. Instead of heavy DOM nodes, you work with lightweight objects containing properties like tagName, attrs, and children. Converting this object tree into the real DOM isn’t magic, it’s just structured tree traversal. The implementation strategy To build your own render function, you only need to chain three native operations: 1. Identify the node type -If the virtual node is a string → document.createTextNode -If it’s an object → document.createElement 2. Handle the attributes Loop through the attrs object and apply them using setAttribute. 3. Recursion is the engine Iterate through the children array, call the render function recursively, and append each result using appendChild. That’s it. The “magic” behind libraries like React is really just strong JavaScript fundamentals + data structures. Most candidates memorise hooks and APIs. Few can build the core from first principles. And that’s exactly what interviews test. Have you ever read the source code of your favourite framework? What surprised you the most? For more front end interview breakdowns like this, check out GreatFrontEnd. We focus on the concepts that actually get asked in real interviews. https://lnkd.in/dDNuYcKB #frontendinterviews #javascript #reactjs #webdevelopment #greatfrontend
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