Higher-Order Components (HOC) in React

⚛️ 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

  • text, letter

To view or add a comment, sign in

Explore content categories