Jack Herrington
Jack Herrington
  • 418
  • 12 166 453
React Compiler: In-Depth Beyond React Conf 2024
Is the React Compiler the most advanced frontend compiler? Let's dig in and see just what it's doing to our code!
Compiler REPL: github.com/jherr/compiler-repl
Meta REPL: playground.react.dev/
Rules of React: react.dev/reference/rules
00:00 Introduction
00:26 Simple Compiler Examples
03:53 Getting Under The Hood
06:36 This is a COMPILER
07:23 Is This Too Far?
08:57 Removing useMemo/useCallback
09:25 Safe Fallback
11:23 Fixing useEffect?
12:59 Key Takeaways
14:20 Outroduction
Переглядів: 46 008

Відео

No const! How NOT To Give A JavaScript Talk
Переглядів 46 тис.День тому
Let's talk a look at Ryan Florence's Epic Web Dev talk "Let Me Be" where he wants to convince us to use a lot more "let" in our JavaScript and a lot less const. Does he do a job convincing us? Are you convinced? And if you are do you think you could defend that position to your coworkers? And what can we learn for our own presentations? Let's find out! Let Me Be talk: www.epicweb.dev/talks/let-...
Next-Auth v5 is Almost Here! Learn it Fast on the NextJS App Router TODAY!
Переглядів 17 тис.14 днів тому
Next-auth is an easy way to get started with authentication in your NextJS App Router application. Let's get it set up, and see how to secure routes, server actions, API routes and client and server API requests! Code: github.com/jherr/next-auth-v5 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discord server signup: discor...
JS Built-in Signals In React and Svelte TODAY!
Переглядів 20 тис.21 день тому
JavaScript could be getting built-in signals! A TC39 could unify how we manage state across React, Angular, Vue, Qwik, Solid, Vanilla... everywhere! Reading the TC39 proposal and talking about it is one thing, but let's see it in action, connecting two different frameworks on top of Astro. Code: github.com/jherr/signals-shopping-cart/blob/main/README.md Proposal: github.com/tc39/proposal-signal...
Javascript Array and Object Cloning: Shallow or Deep?
Переглядів 10 тис.Місяць тому
Should you clone objects and arrays shallow or deep? What is the difference and when does it matter? Let's dig into Javascript Array and Object cloning so that we can learn once and for all, why and when to use deep or shallow cloning. 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discord server signup: discord.gg/ddMZFtTD...
Declarative Routes for NextJS and React-Router: DRY Routing
Переглядів 25 тис.Місяць тому
Why settle for hard-coded link strings and URLs for fetch calls? Let's build a declarative routing system on top of NextJS's router (and the React-Router), to give us write once and never change routing. Code: github.com/jherr/nextjs-declarative-routing NPM: www.npmjs.com/package/declarative-routing 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more upd...
Are You In A React Cult?
Переглядів 28 тис.Місяць тому
React is a huge community. Misconceptions and bad information around useMemo, useCallback, the spread operator, React class components, Redux and more spread like wildfire and create cult-like followings who swear by this stuff. Let's take down a few of these big misconceptions. 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ ...
Finally Fix Your Issues With JS/React Memory Management 😤
Переглядів 77 тис.Місяць тому
If you don't understand JavaScript memory management it's going to bite you over and over again. Let's learn it step by step so that you can have a solid grounding of fundamentals for your JavaScript, TypeScript, NextJS and React 19 journey. 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discord server signup: discord.gg/dd...
Pigment-CSS: Material-UI Fixed on NextJS and React 19
Переглядів 10 тис.2 місяці тому
Material-UI has come out with a new CSS in JS build-time ilbrary that supports CSS any way you want to specify it. It's also themeable! Is this the best CSS library for NextJS and React 19? Let's find out! 💻 Code: arc.net/l/quote/lazrkxqd Pigment CSS: github.com/jherr/material-ui/tree/master/packages/pigment-css-react#start-with-nextjs 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to s...
Tailwind CSS V4 For NextJS, Astro and Vite TODAY
Переглядів 14 тис.2 місяці тому
Tailwind V4 alpha is out. It's 10X faster than 3 because of new Rust based zero configuration tooling. We know it works on Vite, let's check it out on NextJS, Astro, and ShadCN. Article: tailwindcss.com/blog/tailwindcss-v4-alpha 💻 Code: github.com/jherr/tailwind-v4-alpha 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discor...
Is Tanstack Router Better Than React-Router?
Переглядів 30 тис.2 місяці тому
Tanstack Router is an amazing new router from Tanner Linsley, the creator of react-query. It has file based typesafe routing, streaming, and so much more, let's dig in! 💻 Code: github.com/jherr/tanstack-router-streaming-movies 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discord server signup: discord.gg/ddMZFtTDa5 👉 VS C...
React Hook Form & React 19 Form Actions, The Right Way
Переглядів 37 тис.2 місяці тому
Let's figure out how to get form actions and React Hook Form to work together to get the best from both; client AND server side validation when JavaScript is enabled on the client, and user friendly server side validation when it's not enabled. 🎉 Free Forms Tutorial Series: www.pronextjs.dev/tutorials/forms-management-with-next-js-app-router 🎉 Code: github.com/ProNextJS/forms-management-yt 👉 Up...
Are Your React Components Too BIG?
Переглядів 22 тис.2 місяці тому
How big is too big for a single React component? Should you nest component definitions inside of other components? Are there performance issues with huge components? Let's find out! Code: github.com/jherr/gigantic-components 👉 Upcoming NextJS course: pronextjs.dev 👉 Don't forget to subscribe to this channel for more updates: bit.ly/2E7drfJ 👉 Discord server signup: discord.gg/ddMZFtTDa5 👉 VS Cod...
Mastering Micro-Frontends With RSpack and Module Federation
Переглядів 11 тис.3 місяці тому
Mastering Micro-Frontends With RSpack and Module Federation
Five React App Killing Anti-Patterns 🪦😱
Переглядів 30 тис.3 місяці тому
Five React App Killing Anti-Patterns 🪦😱
Easy Multi-tenant NextJS Apps With Clerk
Переглядів 21 тис.3 місяці тому
Easy Multi-tenant NextJS Apps With Clerk
Are RSCs and NextJS Really That Bad?
Переглядів 44 тис.3 місяці тому
Are RSCs and NextJS Really That Bad?
Alpine, HTMX, Astro Stack Wordle App With Full Source!
Переглядів 12 тис.3 місяці тому
Alpine, HTMX, Astro Stack Wordle App With Full Source!
Hiring Secrets of a Netflix Software Engineering Manager
Переглядів 13 тис.4 місяці тому
Hiring Secrets of a Netflix Software Engineering Manager
HTMX For React Developers in 10 Minutes
Переглядів 39 тис.4 місяці тому
HTMX For React Developers in 10 Minutes
Ranking 6 Coding AIs Transforming Web Development in 2024
Переглядів 9 тис.4 місяці тому
Ranking 6 Coding AIs Transforming Web Development in 2024
How To Debug Broken APIs
Переглядів 5 тис.5 місяців тому
How To Debug Broken APIs
13 Figma To React Converters Ranked
Переглядів 23 тис.5 місяців тому
13 Figma To React Converters Ranked
StyleX: Meta's Solution To CSS At Scale
Переглядів 41 тис.5 місяців тому
StyleX: Meta's Solution To CSS At Scale
Stream Your Components From NextJS Server Actions
Переглядів 15 тис.5 місяців тому
Stream Your Components From NextJS Server Actions
Visual Copilot Converts Figma Mocks to React Fast and Accurately
Переглядів 75 тис.5 місяців тому
Visual Copilot Converts Figma Mocks to React Fast and Accurately
The Ultimate API Showdown: Server Actions, tRPC, GraphQL, and REST Compared!
Переглядів 20 тис.5 місяців тому
The Ultimate API Showdown: Server Actions, tRPC, GraphQL, and REST Compared!
NextJS 14: You Missed The Best Part!
Переглядів 27 тис.6 місяців тому
NextJS 14: You Missed The Best Part!
NextJS 14 Server Action Controversy!
Переглядів 25 тис.6 місяців тому
NextJS 14 Server Action Controversy!
Use React Forget TODAY! Fine Grained Updates Right NOW!
Переглядів 37 тис.6 місяців тому
Use React Forget TODAY! Fine Grained Updates Right NOW!

КОМЕНТАРІ

  • @LewisMoten
    @LewisMoten 23 хвилини тому

    I need some hard evidence. Is there a performance hit using const vs let? Is the mutable content of array and objects his only issue? Const is just saying a pointer can’t be reassigned.

  • @Debianz
    @Debianz Годину тому

    Mean while the actual programmers here that don't use a toy language have real things to talk about. This is sad and ridiculous

  • @woofykittyhayday
    @woofykittyhayday 2 години тому

    I’m curious what extension is being for code completion here?

    • @jherr
      @jherr 26 хвилин тому

      Probably GitHub Copilot.

  • @uplink-on-yt
    @uplink-on-yt 4 години тому

    for (const i...) is probably the only thing that bothers me logically. It's a constant that... changes?

    • @jherr
      @jherr 26 хвилин тому

      It's constant within the scope of the loop. Meaning that for every iteration `i` has a new value but that value is `const` within the body of the loop.

  • @Harve6988
    @Harve6988 6 годин тому

    How is this a controversy? Const means the reference? I.e. the reference is constant, and it can't be reassigned? Look to Java - final refers to the reference, and then you have immutable/unmodifiable collections which are different.

  • @Bonestorm1990
    @Bonestorm1990 6 годин тому

    When your arguments are so weak you fake LLM responses.

  • @juusolappalainen4756
    @juusolappalainen4756 7 годин тому

    There's also a typo in Ryan's "ChatGPT response"... :D

  • @sobanya_228
    @sobanya_228 7 годин тому

    Why are veteran programmers confused about a value of an immutable binding. Variable in a math sense.

  • @yamogebrewold8620
    @yamogebrewold8620 7 годин тому

    React as a library and its ecosystem with all frameworks has blown out of proportion. It is supposed to be an unopinionated library, yet it sets rules and provides hooks which make everything confusing. I would prefer React to be a framework which is very strict on best practices and doesn't allow writing "bad" code in the first place. And what is "well-written" React anyway? It is extremely difficult to write React code that doesn't smell. The new React documentation attempts to address some of the anti-patterns, but sometimes fails to provide good solutions. Out of all of the frontend tools, I prefer Angular the most, since it has a clear philosophy with clear best practices and doesn't allow you to opt out of the paradigm easily. Many frontend engineers lack training in computer science and software engineering. They only learned the basics of JavaScript and jumped straight into React. React should be better at providing directions for what good code is and what bad code is. React fails at this completely. The worst code smell in React is the useEffect hook. It is ironic that they recommend using it as little as possible, yet it is likely the second most frequently used hook after useState. That says a lot about the bad design decisions that the React team have made over the years. It is a bit sad that an entire industry has invested immensely in a frontend tool which is very poorly built if you look at it from an engineering angle.

  • @devngecu
    @devngecu 8 годин тому

    how do i add react to a web component?

  • @MsAnnieHuang
    @MsAnnieHuang 9 годин тому

    Not sure if this is a dumb question. But I got a question about prod deployment. Let's say a host app use a component from remote app. This component has changed the props, e.g. add a 'name' props and delete a 'email' props. So obviously I will update both host and remote app. But during prod deployment, which I assume we will deploy remote into S3 first, does it mean the host will have a brief time of error on the component until we finish host app deployment? Of course, we can use error boundary to wrap the host app. But still, would be good to be somehow avoid the down time.

  • @paulharrington9673
    @paulharrington9673 9 годин тому

    Sounds like a good reason not to use JavaScript.

  • @johnpaulpineda2476
    @johnpaulpineda2476 10 годин тому

    Hi Jack! Can you redo this video but with the create-t3-app? That would be a banger, no?

    • @jherr
      @jherr 25 хвилин тому

      T3 apps are only on the pages router.

  • @axelsomerseth
    @axelsomerseth 10 годин тому

    Great content. I will try it out next week. It will help me a lot with the HTML of a platform that I am building

  • @Krishnasaini
    @Krishnasaini 10 годин тому

    Which extension is used here to highlight components which are rerendered?

  • @yathink2406
    @yathink2406 12 годин тому

    But whatever it is.. compiler version will increase production build i guess. 😢

    • @jherr
      @jherr 11 годин тому

      What aspects of the production build will it increase?

  • @AnimeGIFfy
    @AnimeGIFfy 12 годин тому

    "clean coders" pushing their unfounded opinions again. programmers need to stop wasting time on this vibe based mumbojumbo. or atleast present when something is valid and when it is not, not just go black and white "this is always bad to do" or "this is always good to do"

  • @drelroy
    @drelroy 16 годин тому

    Thanks, I didn't know about const considering as a constant. Talk from the referenced video was not good. I stay with const.

  • @paxdriver
    @paxdriver 17 годин тому

    Const is variable if you write anything that nests more than once... It also avoids juniors confusing scope so they can just work and practice reading, letting patterns sink in over time. Let is useful, const is useful, what isn't useful is var. Nothing useful about var except confusion. If a person says con instead of const, nobody would misunderstand. Horrible talk.

  • @Dylan_thebrand_slayer_Mulveiny
    @Dylan_thebrand_slayer_Mulveiny 17 годин тому

    And once this "feature" is released, you can look forward to the next major React release that introduces a new "feature" to work around all the bugs this "feature" causes :) You React people are so silly.

  • @astronavigatorpirx26
    @astronavigatorpirx26 18 годин тому

    I think, that actually the ability to mutate const value is a very strong argument. I use const a lot, but to be honest I always see a code smell when looking at const in cycles (where const is not const at all), and when constant object are being mutated. The REAL const is just a simple value which can be calculated one time before program started, and does not change every time you run your code (until you change your source code). For such values programmers often use UPPER CASE. like const MY_CONSTANT = 123. (I believe Ryan is talking about this case). You should always be able to replace your real constants (while building project) with real values. If not, then it's not a constant. Anyway, const keyword in javascript is still useful. Maybe it would be proper to rename it to something like "partially immutable" or "not directly re-assignable" not to confuse programmers. But it's too long, so keyword "const" for such variables is somewhat acceptable.

  • @rapzid3536
    @rapzid3536 18 годин тому

    So project React Forget "MobX" has finally released their 300kloc+ monster of a horse pill "compiler". The industry is moving towards "signals" so why isn't React being made more officially pluggable with external reactivity systems? Why on earth would they spend this much time and money to release such a monstrosity on the world?! Legacy code. This is designed for "quick" wins on absolutely horrifying legacy code bases that are permanently moored in hook hell. Frankly I wouldn't be surprised if a lot of the industry decides to NOT get tangled up with this thing.

  • @Ceonsamea
    @Ceonsamea 18 годин тому

    It was a great talk with several excellent points, I just wish he also addressed the issues with the 'class' keyword in Python. First of all, Python does not require that you declare variable types, therefore having to write 'class' does not fit with this ideology. Secondly, my cat cannot pronounce 'class' properly. I hope one day we will have a language that is written only in easy to pronounce words that can be correctly pronounced by both humans and cats alike.

  • @yamogebrewold8620
    @yamogebrewold8620 18 годин тому

    Thanks for shedding some light on how this compiler works. The more I read about updates in the React world, the more I believe that this tool is overengineered. Frontend engineering should not have to be this complicated. It is only meant to be a UI library. Building a user interface should be quite trivial.

    • @jherr
      @jherr 15 годин тому

      This is an optimizing compiler. You don't have to use it.

  • @realg701
    @realg701 19 годин тому

    or Ryan's all talks was satirical.

  • @nocnydrwal9499
    @nocnydrwal9499 20 годин тому

    🎯 Key Takeaways for quick navigation: 00:00 *🚀 React wprowadza własny kompilator, co czyni go jednym z najbardziej zaawansowanych kompilatorów wśród frameworków front-endowych.* 01:08 *🔄 Dzięki kompilatorowi React, tylko zmienione komponenty są renderowane ponownie, co zwiększa wydajność bez dodatkowego wysiłku ze strony programisty.* 01:51 *📅 Chociaż kompilator jest w fazie rozwoju, produkty Meta jak Instagram już go używają.* 03:20 *🧩 React Compiler automatycznie zarządza pamięcią i referencjami, eliminując potrzebę użycia useMemo i useCallback w wielu przypadkach.* 05:13 *🧠 Nowy hook useMemoCache pozwala kompilatorowi na efektywną pamięć podręczną elementów JSX.* 06:38 *🔍 Kompilator potrafi usuwać niezmienne wartości, takie jak stałe, i wstawiać je bezpośrednio do kodu JSX.* 08:00 *🔄 Kompilator inteligentnie zarządza dynamicznymi elementami, aktualizując tylko te, które wymagają zmian.* 10:57 *🛠️ Jeśli kompilator napotka nieoptymalny kod, powraca do oryginalnego transpileru bez prób optymalizacji.* 11:39 *🕒 React Compiler pomaga stabilizować referencje w tablicach zależności hooków useEffect, co rozwiązuje wiele typowych problemów.* 13:04 *📝 React 19 nie zawiera kompilatora, ale warto już teraz zacząć eksperymentować, aby być gotowym na jego stabilną wersję.* 13:34 *⚠️ Kompilator nie współpracuje z MobX z powodu fundamentalnych różnic w zarządzaniu stanem opartym na proxy.* 14:30 *🌟 Nowy kompilator otwiera drzwi do dalszych optymalizacji, takich jak różne modele renderowania oparte na układzie komponentów.* Made with HARPA AI

  • @zb4238
    @zb4238 21 годину тому

    I'm just slightly confused... first "react forget" was the big hype of React 19 release but now we have "compiler" and that is supposedly NOT coming in React 19? is react forget now called compiler or are those two separate features?

    • @jherr
      @jherr 19 годин тому

      Forget was the code name, React Compiler is the real name. React 19 is just the version of the library. React Compiler is a set of tools, including babel and eslint plugins, that optimizes components and hooks in React 19 code.

  • @iansamuel1811
    @iansamuel1811 21 годину тому

    i could see using var for callbacks, the problem is the scope is functionally different. I see no issues setting const to a function or a callback. although if it's an imperfect function, it does seem a bit strange. Listening to this take makes me think a bit more about how intentional i can be, but for the most part, i'm in agreement with you. the talks a bit click baity and too much of a hot take to be considered seriously

  • @jedabero
    @jedabero 21 годину тому

    I was confused about the let vs const debacle. I always think like this: I'm declaring a variable for a purpose, will I ever need to change what its pointing to (reassign it)? If yes, then let's use let (maybe I'm doing a sum or an avg without a loop), if not, let's use const (I may just need a way to make sure I'm using the same reference from when I declared it). If I'm using objects or arrays and I need the content to remain the same always, then I use Object.freeze. But that has nothing to do with let or const

  • @nestorneto0
    @nestorneto0 21 годину тому

    working with JS for 2 decades now and since we had const I never faced any issues that he is describing... I am not sure why we are discussing this... is that lack of drama in JS world ?

  • @hovhadovah
    @hovhadovah 23 години тому

    I really wish there were a better way to do all this, as it's quite a lot of boilerplate. Especially the part where you need to re-stringify the FormData to pass down the fields from the server if zod validation fails. For example, what if a field is of a numeric or boolean or some other type? Ideally you shouldn't have to convert those types yourself. You already have a zod schema, so it would be nice to reuse it. I've been tinkering with Svelte's superforms library and it's phenomenal. It gives you all of this for free, and it works with and without JS. Plus you get inline errors and auto-populated field data from the server. The only downside is that it only supports method="POST".

  • @BenjiDalton
    @BenjiDalton День тому

    This talk really annoyed me. It's an old rehashed argument we left behind like 9 years ago. Const obviously has value or it wouldn't have gained any traction. There is a difference between mutability and re-assignment, which this talk totally glosses over.

  • @abhishek_k7
    @abhishek_k7 День тому

    I see that you are a Godzilla/Gojira fan too!

  • @abhishek_k7
    @abhishek_k7 День тому

    your videos are very insightful and I always learn some new things

  • @abhishek_k7
    @abhishek_k7 День тому

    7:23 lol frontend devs getting introduced to compilers for the first time in their lives 🤣

  • @abhishek_k7
    @abhishek_k7 День тому

    your experience really helps us with such things. I hadnt seen the original talk but thanks for covering this! and true he didnt provide any compelling reasons so makes one wonder why even talk about it. didnt provide much value other than this video about critical evaluation of others 'opinions' to decide whether it makes sense for your purpose

  • @kamrant8915
    @kamrant8915 День тому

    Thanks a lot. Perfect like ever.

  • @MakanaTheCoder
    @MakanaTheCoder День тому

    All I use is const, const, const no matter what

  • @mahmoudzakria6946
    @mahmoudzakria6946 День тому

    **EDIT** Does it compile the react code and while building is the React vendor/dependency opted-out from the final production bundle like Svelte?

    • @jherr
      @jherr День тому

      I don’t fully understand the question. All it’s doing is optimizing the components and hooks. It’s not doing any kind of bundling or tree shaking. The code shown in the video is a decent view of what the compiler is doing.

    • @mahmoudzakria6946
      @mahmoudzakria6946 День тому

      @@jherr Ok ma bad, I made an edit and will also rephrase it better here, but I think the answer is no based on the examples you provided, but anyway, what I mean is when it comes to the building/bundling time for production I thought it will just compile the react code into JS code and no need to generate the vendor chunk file which included in /dist because the code is compile from declarative to imperative, I hope I made it more clearer 💙

  • @everyhandletaken
    @everyhandletaken День тому

    Ecmascript 2034; const mut animals = []; 😏

  • @brikka
    @brikka День тому

    thanks! your to the point tutorials are perfect! :D

  • @mattmaloney5988
    @mattmaloney5988 День тому

    Love seeing you shining a light on our industry BS.

  • @codebycarlos
    @codebycarlos День тому

    Ouch

  • @proptyme
    @proptyme День тому

    Excellent video lesson, loved it

  • @YasinAkimura
    @YasinAkimura День тому

    This is huge! I am somehow worried but I think the compiler is great but I also think it takes alot from beginners where you have to learn that this can't work if the ref is changing and why it's changing. Also we need to keep in mind that there is a bunch of stuff happening in the background I'd say because react was and still is just JavaScript using all its rules but now some things get hidden so some could get a dumb down effect where they will wonder why its not working. So we need to encourage people to still write good structured code I think this will benefit my react native projects too. I am worried that too much caching might push the memory usage of the apps but I think it will be fine as its only for the mounted states and pointing to something is just fine.

  • @theoDSP
    @theoDSP День тому

    The examples with modifying the array are laughable. If you really wanted immutability you could use specific tools like immutable.js or immer.js to manage updates. I think this presentation is geared towards junior devs trying to grab on new ideas.

  • @bibahbibah5108
    @bibahbibah5108 День тому

    Thanks, but there are one point that have not appeared, the performance impact and specially when the memorization the components

    • @jherr
      @jherr День тому

      That wasn't in there because I don't have the data on that. Meta showed the data in their presentation because they have the data on the impact when they ported all of Instagram to it. It was 12% faster UI performance overall, with no change in memory footprint.

  • @TM_LBenson
    @TM_LBenson День тому

    I would have expected something about performance, memory management, or something technical. Its like people tell me to use function expressions instead of function declarations. If i start off using const, for the sake of consistance I will use it in my projects.

  • @StephenRayner
    @StephenRayner День тому

    // @ts-check /** @type {import('next').NextConfig} */ const nextConfig = { experimental: { reactCompiler: true } } module.exports = nextConfig Use ‘next@canary’

  • @StephenRayner
    @StephenRayner День тому

    How are you getting the boarders to show when state changes?

    • @StephenRayner
      @StephenRayner День тому

      To visually track state changes and re-renders of React components within Google Chrome, you can use the "Highlight updates when components render" feature in the React Developer Tools extension. Here's how to enable it: Install the React Developer Tools extension for Chrome. Open your React application in Chrome. Open the React Developer Tools panel (usually found under "Developer Tools" > "React"). In the React Developer Tools panel, click on the settings icon (gear icon). Check the "Highlight updates when components render" option. With this option enabled, whenever a React component re-renders due to a state change or prop update, a colored border or rectangle will flash around that component in the browser window. This visual highlighting helps identify which components are re-rendering and when, making it easier to debug performance issues or unnecessary re-renders.