<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CodeSmithNazim</title>
    <description>The latest articles on DEV Community by CodeSmithNazim (@codesmithnazim).</description>
    <link>https://dev.to/codesmithnazim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4030397%2F01211a9e-4b13-4092-9da4-2cbe54b4a818.png</url>
      <title>DEV Community: CodeSmithNazim</title>
      <link>https://dev.to/codesmithnazim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codesmithnazim"/>
    <language>en</language>
    <item>
      <title>Built a weather app with AI-generated summaries and city bookmarking—feedback welcome (took me 9-10 days; learned a lot)</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Sat, 25 Jul 2026 14:10:31 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/built-a-weather-app-with-ai-generated-summaries-and-city-bookmarking-feedback-welcome-took-me-9-10-2eo5</link>
      <guid>https://dev.to/codesmithnazim/built-a-weather-app-with-ai-generated-summaries-and-city-bookmarking-feedback-welcome-took-me-9-10-2eo5</guid>
      <description>&lt;p&gt;Hey everyone, wanted to share a project I just finished. It's a weather app, but I tried to push past the typical "fetch API, show temperature" tutorial project.&lt;/p&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;p&gt;AI-generated natural language weather summaries instead of raw numbers&lt;br&gt;
Dynamic backgrounds that change based on real weather conditions&lt;br&gt;
City search with live suggestions as you type&lt;br&gt;
Bookmark/favorite cities, persisted with localStorage&lt;/p&gt;

&lt;p&gt;Stack: React + Vite, deployed on Vercel&lt;/p&gt;

&lt;p&gt;Stuff that actually gave me trouble:&lt;/p&gt;

&lt;p&gt;Debouncing the city search so it doesn't spam the API on every keystroke&lt;br&gt;
Duplicate city names across countries messing up search results&lt;br&gt;
Bookmarks kept vanishing on refresh until I realized I wasn't persisting state properly&lt;br&gt;
Syncing background image changes with API response timing without a jarring flash&lt;/p&gt;

&lt;p&gt;It took about 9-10 days total, mostly because I kept refactoring state management once bookmarks, search, and multi-city display all had to interact. Still learning, so genuinely open to criticism — especially on component structure, since that's where I feel least confident.&lt;/p&gt;

&lt;p&gt;Live: &lt;a href="https://reactweatherweb.vercel.app/" rel="noopener noreferrer"&gt;Live url&lt;/a&gt;&lt;br&gt;
Repo: &lt;a href="https://github.com/codesmithnazim/ReactWeatherApp" rel="noopener noreferrer"&gt;GitHub &lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>uidesign</category>
      <category>weather</category>
    </item>
    <item>
      <title>Why does my React component crash on the first render when using data fetched inside useEffect()?</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Thu, 16 Jul 2026 08:13:32 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/why-does-my-react-component-crash-on-the-first-render-when-using-data-fetched-inside-useeffect-1cp3</link>
      <guid>https://dev.to/codesmithnazim/why-does-my-react-component-crash-on-the-first-render-when-using-data-fetched-inside-useeffect-1cp3</guid>
      <description>&lt;p&gt;When you fetch data inside &lt;code&gt;useEffect()&lt;/code&gt;, the network request is asynchronous and only runs after the initial render has already completed and painted to the screen.&lt;/p&gt;

&lt;p&gt;Because React cannot pause rendering to wait for your API response, your component's state is still its initial value (like &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;) during that first render. If you try to read properties from your data (like &lt;code&gt;user.name&lt;/code&gt;) before the data actually arrives, your app will crash.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⏳ Step-by-Step: The Async Lifecycle
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;UserProfile&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;userId&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setUser&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Starts as null&lt;/span&gt;

  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;fetchUser&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;setUser&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Async API call&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;

  &lt;span class="c1"&gt;// ⚠️ Safety check is mandatory!&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h1&amp;gt; : &amp;lt;div&amp;gt;Loading...&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 1: The Initial Render (The "Loading" State)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;React mounts the  component. &lt;/li&gt;
&lt;li&gt;It initializes the state: &lt;code&gt;user&lt;/code&gt; is set to &lt;code&gt;null&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;React must return JSX immediately. It cannot halt the browser to wait on a server.&lt;/li&gt;
&lt;li&gt;React runs your return statement. Since &lt;code&gt;user&lt;/code&gt; is currently &lt;code&gt;null&lt;/code&gt;, the ternary operator evaluates the fallback and renders: &lt;code&gt;&amp;lt;div&amp;gt;Loading...&amp;lt;/div&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The browser paints "Loading..." on the screen. The first render is now complete.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 2: The &lt;code&gt;useEffect&lt;/code&gt; Fires (After Paint)
&lt;/h2&gt;

&lt;p&gt;Now that the first render is safely on the screen, React triggers the &lt;code&gt;useEffect()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It kicks off your asynchronous network call: &lt;code&gt;fetchUser('123')&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;While the browser is waiting for the server to reply, nothing changes on the screen. It still shows "Loading..."&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: State Updates
&lt;/h2&gt;

&lt;p&gt;Sometime later (e.g., 300ms), the server responds with &lt;code&gt;{ name: "Alex" }&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The promise resolves and calls &lt;code&gt;setUser({ name: "Alex" })&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Setting state signals React: "Hey! The data is here. We need to re-render!"&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: The Second Render (The "Data" State)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;React re-runs the&lt;/code&gt;UserProfile` function.&lt;/p&gt;

&lt;p&gt;This time, the user is not &lt;code&gt;null&lt;/code&gt;; it is &lt;code&gt;{ name: "Alex" }&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The return statement runs again. The ternary operator evaluates to truthy and returns:&lt;code&gt; &amp;lt;h1&amp;gt;Alex&amp;lt;/h1&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The browser updates, replacing "Loading..." with "Alex."&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️ Why Conditional Guards Are Mandatory
&lt;/h2&gt;

&lt;p&gt;Because of this exact asynchronous timeline, if you do not write a guard condition, your application will crash during Step 1.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;javascript&lt;br&gt;
// ❌ THIS WILL CRASH IMMEDIATELY&lt;br&gt;
return (&lt;br&gt;
  &amp;lt;div&amp;gt;&lt;br&gt;
    &amp;lt;h1&amp;gt;{user.name}&amp;lt;/h1&amp;gt; &lt;br&gt;
  &amp;lt;/div&amp;gt;&lt;br&gt;
);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;During the initial render, &lt;code&gt;user&lt;/code&gt; is still &lt;code&gt;null&lt;/code&gt;. JavaScript will try to read &lt;code&gt;null.name&lt;/code&gt; and throw the classic error:&lt;br&gt;
💡 TypeError: Cannot read properties of null (reading 'name')&lt;br&gt;
Always protect your renders from empty async states using either ternary operators, logical AND (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;), or optional chaining (&lt;code&gt;?.&lt;/code&gt;):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;`javascript&lt;br&gt;
// Option A: Ternary Operator (Great for loading states)&lt;br&gt;
{user ? &lt;/p&gt;
&lt;h1&gt;{user.name}&lt;/h1&gt; : Loading...}

&lt;p&gt;// Option B: Optional Chaining (Safely returns undefined instead of crashing)&lt;/p&gt;

&lt;h1&gt;{user?.name}&lt;/h1&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Put your comments; I'll be happy to see feedback if it helps anyone.&lt;br&gt;
Follow me for more.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>debugging</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>The React 2013 "Marketing Pitch"</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Thu, 16 Jul 2026 05:39:36 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/the-react-2013-marketing-pitch-16bb</link>
      <guid>https://dev.to/codesmithnazim/the-react-2013-marketing-pitch-16bb</guid>
      <description>&lt;p&gt;When React was first introduced in 2013, the web development world was dominated by frameworks like jQuery, Backbone, and AngularJS. In those frameworks, developers had to manually update the browser DOM, or the framework would heavily slow down the browser by sweeping the entire real DOM on every change.&lt;/p&gt;

&lt;p&gt;React's biggest selling point was the following: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Stop worrying about manual DOM updates. Just write your UI declaratively. The Virtual DOM will magically do the work of reducing renders.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To sell this idea simply to a skeptical developer audience, the creators packaged the message into: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We minimize rendering&lt;br&gt;
It was a highly effective marketing pitch, even if it technically blurred the lines between the JavaScript render phase and the browser paint phase.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  React Official Docs Change: -
&lt;/h2&gt;

&lt;p&gt;The React Team Literally Changed the Docs to Fix This!&lt;br&gt;
The confusion grew so massive that when the React team rewrote the official documentation from scratch (moving to the modern react.dev), they explicitly rewrote the guide to fix this exact misunderstanding.&lt;/p&gt;

&lt;p&gt;If you look at the modern "Render and Commit" section of the official docs, they now explicitly separate the process into three distinct steps—Trigger, Render, and Commit—and they added an &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Epilogue&lt;br&gt;
Just for the browser:&lt;/p&gt;

&lt;p&gt;Epilogue: Browser paint&lt;br&gt;
After rendering is done and React updated the DOM, the browser will repaint the screen. Although this process is known as &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;browser rendering&lt;br&gt;
, we'll refer to it as &lt;br&gt;
painting &lt;br&gt;
to avoid confusion throughout the docs.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;

&lt;p&gt;They literally had to invent their own terminology  "painting"&lt;br&gt;
to stop developers from confusing React's in-memory calculations with actual browser screen updates!&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactdocs</category>
    </item>
    <item>
      <title>component re-render and React reconciliation mechanism: a brief overview</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Wed, 15 Jul 2026 18:38:07 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/component-re-render-and-react-reconciliation-mechanism-a-brief-overview-4ke9</link>
      <guid>https://dev.to/codesmithnazim/component-re-render-and-react-reconciliation-mechanism-a-brief-overview-4ke9</guid>
      <description>&lt;p&gt;If we have &lt;code&gt;1000 a list's items and only one of them changes, React will re-render all the&lt;/code&gt;1000` items and will make a new virtual DOM tree.&lt;br&gt;
The newly made DOM tree will be compared with the old DOM tree, as we added only one list, so in the actual DOM only one change will occur: the addition of the new list item.&lt;br&gt;
That's the brief and easy under-the-hood explanation of React's reconciliation mechanism.&lt;br&gt;
For more detail you can check in my rest of posts.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>reactrendering</category>
      <category>allreact</category>
    </item>
    <item>
      <title>React's Reconciliation</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Wed, 15 Jul 2026 18:24:34 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/reacts-reconciliation-54op</link>
      <guid>https://dev.to/codesmithnazim/reacts-reconciliation-54op</guid>
      <description>&lt;h2&gt;
  
  
  Brief Definition:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reconciliation is React's process of comparing the previous and new Virtual DOM trees to determine the minimum necessary changes to the real DOM&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjsdevelopment</category>
      <category>webdev</category>
      <category>explorecoding</category>
    </item>
    <item>
      <title>The Biggest Misconception About React Reconciliation (Render vs. Paint) 2nd part</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Wed, 15 Jul 2026 14:56:17 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/reamain-part-of-previous-post-reconciliation-in-reactjs-4n02</link>
      <guid>https://dev.to/codesmithnazim/reamain-part-of-previous-post-reconciliation-in-reactjs-4n02</guid>
      <description>&lt;p&gt;second part:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Clash of Two "Renders"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The biggest culprit is that the word "render" means two completely different things in computer science, and React tried to use both at the same time:&lt;/p&gt;

&lt;p&gt;Browser Rendering: This is when the browser engine calculates layouts, builds render trees, and paints pixels on your screen.&lt;/p&gt;

&lt;p&gt;React Rendering: This is when React calls your component functions to build a JavaScript object tree (virtual DOM) in memory.&lt;/p&gt;

&lt;p&gt;Because the browser's process was already called "rendering," React's creators used the same word for their virtual DOM creation. For years, when the docs said "React prevents unnecessary renders," developers read that as "React prevents my components from running their JavaScript." It took years for the community to realize we were talking about two entirely different concepts!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The 2013 "Marketing Pitch"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When React was first introduced in 2013, the web development world was dominated by frameworks like jQuery, Backbone, and AngularJS. In those frameworks, developers had to manually update the browser DOM, or the framework would heavily slow down the browser by sweeping the entire real DOM on every change.&lt;/p&gt;

&lt;p&gt;React's biggest selling point was "Stop worrying about manual DOM updates." Just write your UI declaratively. The Virtual DOM will magically do the work of reducing renders."&lt;/p&gt;

&lt;p&gt;To sell this idea simply to a skeptical developer audience, the creators packaged the message into "We minimize rendering." It was a highly effective marketing pitch, even if it technically blurred the lines between the JavaScript render phase and the browser paint phase.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The React Team Literally Changed the Docs to Fix This!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The confusion grew so massive that when the React team rewrote the official documentation from scratch (moving to the modern react.dev), they explicitly rewrote the guide to fix this exact misunderstanding.&lt;/p&gt;

&lt;p&gt;If you look at the modern "Render and Commit" section of the official docs, they now explicitly separate the process into three distinct steps—Trigger, Render, and Commit—and they added an "Epilogue" just for the browser:&lt;/p&gt;

&lt;p&gt;"Epilogue: Browser paint&lt;/p&gt;

&lt;p&gt;After rendering is done and React updates the DOM, the browser will repaint the screen. Although this process is known as "browser rendering," we'll refer to it as "painting" to avoid confusion throughout the docs.&lt;/p&gt;

&lt;p&gt;They literally had to invent their own terminology ("painting") to stop developers from confusing React's in-memory calculations with actual browser screen updates!&lt;/p&gt;

&lt;p&gt;The Verdict:-&lt;/p&gt;

&lt;p&gt;When people say "reconciliation decreases the amount of things re-rendered," they are usually using "re-render" as a layman's term for "affecting the actual browser screen."&lt;/p&gt;

&lt;p&gt;If you could understand the above two posts, then you understand React's core architecture better than many developers who have been writing it for years.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>performance</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Biggest Misconception About React Reconciliation (Render vs. Paint)</title>
      <dc:creator>CodeSmithNazim</dc:creator>
      <pubDate>Wed, 15 Jul 2026 12:25:52 +0000</pubDate>
      <link>https://dev.to/codesmithnazim/the-biggest-misconception-about-react-reconciliation-render-vs-paint-4mcm</link>
      <guid>https://dev.to/codesmithnazim/the-biggest-misconception-about-react-reconciliation-render-vs-paint-4mcm</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;I recently had an "aha!" moment regarding how React handles updates under the hood, and I wanted to share it because I realize a ton of developers (including myself, until recently) trip over this exact concept.&lt;/p&gt;

&lt;p&gt;The common mental model is that React Reconciliation compares the Virtual DOM directly to the Real Browser DOM and surgically updates only what changed.&lt;/p&gt;

&lt;p&gt;But that’s fundamentally incorrect. React never reads or directly compares the real DOM during the diffing process. It actually splits the process into two entirely separate phases —The Render Phase and The Commit Phase —which creates a massive distinction between Re-rendering and Re-painting.&lt;/p&gt;

&lt;p&gt;Here is the exact breakdown of what happens when a single state change affects just 1 out of 100 divs in a component:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Render Phase (Pure JavaScript)
When state changes, React calls your component function. It doesn't know which of your 100 divs changed yet, so it has to evaluate the entire JSX block.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Scope: React re-renders all 100 virtual divs in memory.&lt;/p&gt;

&lt;p&gt;The Process: It builds a brand-new Virtual DOM tree and compares it to the previous Virtual DOM tree (JavaScript object vs. JavaScript object).&lt;/p&gt;

&lt;p&gt;The Outcome: It spots that 99divs are identical, but 1 div has an update. It flags that single virtual node with an "Update" tag.&lt;/p&gt;

&lt;p&gt;Because this happens purely in-memory as JavaScript, it is incredibly fast and cheap.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Commit Phase (The Real DOM Update)
This is where Reconciliation does its primary job. It acts as a shield to protect the browser from doing unnecessary work.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Scope: React completely ignores the 99 unchanged elements.&lt;/p&gt;

&lt;p&gt;The Process: It surgically targets the single real browser div associated with the flagged Virtual DOM element and updates only its modified property (e.g., element.textContent = "New Value").&lt;/p&gt;

&lt;p&gt;The Outcome: The browser repaints only 1 single div on the screen.&lt;/p&gt;

&lt;p&gt;The Conclusion: Reconciliation isn't about stopping React from re-rendering (re-running JS to calculate the UI). It is about controlling the browser's re-painting so that the expensive UI updates are kept to an absolute minimum.&lt;/p&gt;

&lt;p&gt;Would love to hear how you guys explain this concept to juniors or if this distinction changed how you approach optimization!&lt;br&gt;
continue reading the rest of this post &lt;a href="https://dev.to/codesmithnazim/reamain-part-of-previous-post-reconciliation-in-reactjs-4n02"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>reactjsdevelopment</category>
      <category>reactreconciliationworking</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
