<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/why-react-re-renders-iftwro8ck" -->

---
title: Why React Re-Renders | daily.dev
description: This tutorial is written to help beginner-intermediate React developers get more comfortable with React. It&#x27;s the only “trigger” in React for a component to...
canonical: https://daily.dev/posts/why-react-re-renders-iftwro8ck
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Why React Re-Renders | daily.dev
og:description: This tutorial is written to help beginner-intermediate React developers get more comfortable with React. It&#x27;s the only “trigger” in React for a component to...
og:url: https://daily.dev/posts/why-react-re-renders-iftwro8ck
og:image: https://api.daily.dev/og/posts/IFTwro8Ck.png
og:image:alt: Why React Re-Renders
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Why React Re-Renders

**[Josh W Comeau](https://daily.dev/sources/joshwcomeau)** · 13 min read · 306 upvotes · 18 comments

## Summary

This tutorial is written to help beginner-intermediate React developers get more comfortable with React. It's the only “trigger” in React for a component to re-render. In React, every state change in React forces an application-wide render, but this isn't true. In this case, it sees that our paragraph has a text node that changed from 0 to 1.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.joshwcomeau.com/react/why-react-re-renders/>

## Community discussion

Top comments from developers on daily.dev.

**@dprophecyguy** · 4 upvotes

> Are there any more such articles which explain working of react ?

**@byv55f5f5** · 2 upvotes

> The [Official Doc](https://reactjs.org/docs/react-api.html#reactmemo) said:
>
> > React.memo only checks for prop changes.
> > If your function component wrapped in React.memo has a useState, useReducer or useContext Hook in its implementation, it will still rerender when state or context change.
>
> So maybe the context value cannot be treated as "internal props"

**@ouroborus357** · 0 upvotes

> Really well explained.

**@kanan** · 0 upvotes

> Can you write an article about useCallback and useMemo use cases ?. Is it true to give useCallback to each function (if all dependencies are true) ?

**@yash\_darkslayer** · 0 upvotes

> Best one I have seen.

## Similar posts on daily.dev

- [Don’t just attend KubeCon \+ CloudNativeCon, Merge Forward your experience\!](https://daily.dev/posts/don-t-just-attend-kubecon-cloudnativecon-merge-forward-your-experience--l0rpp73x8) · CNCF · 1 upvotes · 0 comments
- [Announcing H2 2026 KCDs](https://daily.dev/posts/announcing-h2-2026-kcds-m96goajm1) · CNCF · 1 upvotes · 0 comments
- [Two months of Open Community Groups](https://daily.dev/posts/two-months-of-open-community-groups-asf52zhbs) · CNCF · 0 upvotes · 0 comments
- [CNCF Unveils Schedule for KubeCon \+ CloudNativeCon Europe 2026](https://daily.dev/posts/cncf-unveils-schedule-for-kubecon-cloudnativecon-europe-2026-ikhcoa5cb) · CNCF · 2 upvotes · 0 comments
- [CNCF Debuts KubeCon \+ CloudNativeCon Japan 2026 Schedule](https://daily.dev/posts/cncf-debuts-kubecon-cloudnativecon-japan-2026-schedule-xp5pyudub) · CNCF · 1 upvotes · 0 comments

---

Tags: [#react](https://daily.dev/tags/react), [#performance](https://daily.dev/tags/performance)

[View this post on daily.dev](https://daily.dev/posts/why-react-re-renders-iftwro8ck)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Why React Re-Renders","url":"https://daily.dev/posts/why-react-re-renders-iftwro8ck","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/why-react-re-renders-iftwro8ck"},"datePublished":"2022-08-16T16:47:08.944Z","dateModified":"2022-08-16T16:47:08.854Z","description":"This tutorial is written to help beginner-intermediate React developers get more comfortable with React. It's the only “trigger” in React for a component to...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/393f43e303e863edd4031b30754cc0ca","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/393f43e303e863edd4031b30754cc0ca","isAccessibleForFree":true,"articleSection":"Josh W Comeau","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Josh W Comeau","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/4a121572d03c40a2bff9e8ed0f0792b5","url":"https://daily.dev/sources/joshwcomeau"},"commentCount":18,"discussionUrl":"https://daily.dev/posts/why-react-re-renders-iftwro8ck","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":306},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":18}],"keywords":"react,performance","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Josh W Comeau","item":"https://daily.dev/sources/joshwcomeau"},{"@type":"ListItem","position":3,"name":"Why React Re-Renders"}]}
{"@context":"https://schema.org","@type":"WebPage","@id":"https://daily.dev/posts/why-react-re-renders-iftwro8ck","comment":[{"@type":"Comment","text":"Are there any more such articles which explain working of react ?","datePublished":"2022-08-16T18:59:42.501Z","url":"https://daily.dev/posts/IFTwro8Ck#c-onEMr3ryI","author":{"@type":"Person","name":"Vijay Singh","url":"https://daily.dev/dprophecyguy","image":"https://avatars.githubusercontent.com/u/11094580?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4}},{"@type":"Comment","text":"The Official Doc said:\n\nReact.memo only checks for prop changes.\nIf your function component wrapped in React.memo has a useState, useReducer or useContext Hook in its implementation, it will still rerender when state or context change.\n\nSo maybe the context value cannot be treated as “internal props”","datePublished":"2022-08-17T10:17:21.378Z","dateModified":"2022-08-17T10:20:01.847Z","url":"https://daily.dev/posts/IFTwro8Ck#c-bFSPEkxgw","author":{"@type":"Person","name":"Charlie Xu","url":"https://daily.dev/byv55f5f5","image":"https://avatars.githubusercontent.com/u/54884452?v=4"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"Really well explained.","datePublished":"2022-08-23T22:45:04.510Z","url":"https://daily.dev/posts/IFTwro8Ck#c-XWUiXC4rO","author":{"@type":"Person","name":"Nikola Ivanov","url":"https://daily.dev/ouroborus357","image":"https://lh3.googleusercontent.com/a-/AOh14GgE-i8SEOXHoA8VMwZi9-xjcv2irOQPX2v8ZGIpqg=s100"}},{"@type":"Comment","text":"Can you write an article about useCallback and useMemo use cases ?. Is it true to give useCallback to each function (if all dependencies are true) ?","datePublished":"2022-08-18T07:03:25.633Z","url":"https://daily.dev/posts/IFTwro8Ck#c-a2ZW1vNvW","author":{"@type":"Person","name":"Kanan Islamzada","url":"https://daily.dev/kanan","image":"https://avatars.githubusercontent.com/u/62353540?v=4"}},{"@type":"Comment","text":"Best one I have seen.","datePublished":"2022-09-22T14:11:39.090Z","url":"https://daily.dev/posts/IFTwro8Ck#c-suw4UhvbY","author":{"@type":"Person","name":"Yash Srivastava","url":"https://daily.dev/yash_darkslayer","image":"https://lh3.googleusercontent.com/a/AATXAJw_S1H0WDKzxDHfo7UhEqRo2bt1uX9Avm9wO_jg=s100"}}]}
```

