Most React developers build "Swiss Army Knife" components. And it’s killing their build speed and their sanity. The trap: You build a <Button />. - Then you add a loading prop. - Then an icon prop. - Then variant, size, isFullWidth, and isDisabled. Suddenly, your simple component has 15 props and a massive switch statement inside. The Rule of Three: If a component needs more than 3 conditional styles or complex logic branches, it shouldn't be one component. It should be three. code example - Why this wins - Tree Shaking You only ship the code you actually use. - Readability No more hunting through 200 lines of JSX to find one CSS change. - Testing Testing a specialized component is 10x easier than testing a "God Component." Stop building for every possible future. Build for the current requirement. The best code isn't the most flexible it's the easiest to delete. #reactjs #typescript #cleancode #webdevelopment #javascript
Avoid Over-Engineering React Components with the Rule of Three
More Relevant Posts
-
most developers don't know the difference between null , undefined and "" and it's breaking their React forms silently. - always initialise string state with ' ' not undefined - always initialise array state with [ ] not undefined - always initialise object state with { } not undefined here's why it matters beyond the warning: - undefined means "this was never set" - null means "this was intentionally set to nothing" - ' ' means "this exists but is currently empty" React treats these three things completely differently when rendering. your form works locally because you fill it in immediately. it breaks in production because someone submits without touching a field. initialise your state properly. #reactjs #typescript #webdevelopment #buildinpublic #javascript
To view or add a comment, sign in
-
-
The Great Debate: Formik or React Hook Form? Both are industry favorites, but they offer two very different approaches to handling forms in React. While one is praised for its stability and ease of use, the other is the go-to for performance and minimal re-renders. Most developers have a strong preference, but is there really a "winner"? Which one is currently in your tech stack, and why did you choose it over the other? 👇 #ReactJS #FrontendDevelopment #WebPerformance #ProgrammingTips #Javascript
To view or add a comment, sign in
-
Hey JavaScript devs 👋 Did you know `this` can silently disappear in 3 very common situations? 1. Detaching a method from its object const fn = obj.greet; fn(); // this → undefined 💀 2. Passing a method as a callback setTimeout(obj.greet, 0); // this → gone [1,2,3].forEach(obj.process); // same story 3. Arrow function in an object literal const obj = { name: 'Pavel', greet: () => console.log(this.name) // this → global, not obj }; The fix is always one of three things: `.bind()`, a wrapper arrow function, or class field arrow methods. Which one bit you the hardest? Drop it in the comments 👇 #JavaScript #WebDev #Frontend #JS
To view or add a comment, sign in
-
-
most React developers use useCallback wrong. not because they don't understand it. because they were taught the wrong rule. the rule they heard: "wrap functions in useCallback to prevent unnecessary re-renders. the actual rule: useCallback only helps when you pass that function to a child component wrapped in React.memo or as a dependency in useEffect. that's it. useCallback doesn't prevent re-renders of the parent. it just memoizes the function reference so children don't see a "new" function every render. three questions to ask before reaching for useCallback: - is this function passed to a memoized child component? - is this function a dependency in a useEffect? - is this function expensive to recreate? if none of these just write the function normally. the best optimisation is usually the one you don't add. #reactjs #typescript #webdevelopment #buildinpublic #javascript
To view or add a comment, sign in
-
-
You click “Add to Cart” → UI updates. But here’s what really happens ① setState() is triggered ② React may batch updates and schedules a re-render ③ React produces a new element tree ④ It compares it with the previous one (reconciliation) ⑤ It calculates the minimal changes needed ⑥ Only the necessary updates are applied to the DOM Key insight: Re-render ≠ DOM update. A component can re-render multiple times without causing any DOM updates. That’s the real power of React. It’s not about rendering fast… It’s about avoiding unnecessary work. — How well do you understand React under the hood? #React #ReactJS #JavaScript #Frontend #WebDevelopment #SoftwareEngineering #FrontendDevelopment #Programming
To view or add a comment, sign in
-
-
useImperativeHandle is one of the most underrated React hooks. useImperativeHandle lets a parent trigger specific actions in a child component — focus, reset, open, close — without exposing internal logic. #ReactJS #ReactHooks #FrontendDevelopment #JavaScript #WebDevelopment #SoftwareEngineering #CleanCode #UIEngineering #FrontendEngineer
To view or add a comment, sign in
-
-
One small React habit that improved my code a lot: Stop putting everything in one component. Earlier, I used to write large components with too much logic. It worked… but became messy very quickly. Now I try to: • Break UI into smaller components • Keep logic separate • Reuse components wherever possible This makes the code cleaner and easier to scale. If you're learning React, start thinking in components, not pages. #reactjs #frontend #webdevelopment #javascript
To view or add a comment, sign in
-
-
One mistake I made as a React developer 🚫 I used too many states unnecessarily. 👉 Solution: Use a single state object when possible Cleaner code = fewer bugs #reactjs #javascript #codingtips
To view or add a comment, sign in
-
Day 6 — Find Second Largest Number in an Array (JavaScript) Problem Write a function to find the second largest number in an array. Example Input: [10, 5, 8, 20] Output: 10 Approach First find the largest number, then find the largest number smaller than it. Code function secondLargest(arr){ let largest = -Infinity let second = -Infinity for(let i = 0; i < arr.length; i++){ if(arr[i] > largest){ second = largest largest = arr[i] } else if(arr[i] > second && arr[i] !== largest){ second = arr[i] } } return second } console.log(secondLargest([10,5,8,20])) Alternative Approach function secondLargest(arr){ let sorted = [...new Set(arr)].sort((a,b) => b-a) return sorted[1] } What I Learned How to track two maximum values in a single loop. #javascript #frontenddeveloper #codingpractice #webdevelopment
To view or add a comment, sign in
-
-
🧠 React Doesn’t Update State Immediately (Even Inside the Same Function) Most people know state is async. But here’s the part many don’t realize 👇 Example const [count, setCount] = useState(0); function handleClick() { setCount(count + 1); if (count === 0) { console.log("Still zero?"); } } You click the button. Expected: count = 1 But inside that function… 👉 count is still 0 🔍 Why? Because React doesn’t update state inside the current render cycle. It schedules the update and re-renders later. 🧠 The tricky part Even this won’t work: setCount(count + 1); setCount(count + 1); 👉 Final result = +1, not +2 ✅ Correct way setCount(prev => prev + 1); setCount(prev => prev + 1); Now React uses the latest value. 🎯 The Real Insight State inside a function is a snapshot, not a live value. 💥 Why this matters This causes: Unexpected conditions Wrong calculations Confusing bugs #ReactJS #FrontendDevelopment #JavaScript #ReactHooks #WebDevelopment #CodingTips #LearningInPublic
To view or add a comment, sign in
Explore related topics
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