Is it time to forget about useCallback & memo?

Hey friend,

This is one of the most exciting updates in the React ecosystem: the React Compiler โ†—๏ธ.

I am incredibly excited because we can now use the Next.js 15 RC โ†—๏ธ with this compiler and eliminate many React hooks we've been using, such as useCallback, useMemo, memo, and more.

If you prefer to watch the video instead, then check out my latest video here ๐Ÿ‘‡

How does React Compiler ACTUALLY work?

video previewโ€‹

Our Weekly Snack: Is it time to forget useCallback or useMemo?

First of all, why are we questioning this? Well, that's because React compiler is out.

What is React Compiler?

React Compiler is an automatic optimizer for React code. It analyzes your components and optimizes them for performance, reducing the need for manual memoization with hooks ๐Ÿช like useMemo, useCallback, and memo.

These hooks are currently used to prevent unnecessary re-renders of components based on whether their props or state have truly changed.

React Compiler will optimize your React code provided you follow the Rules of React โ†—๏ธ.

Now, not using hooks inside a function, function should always return the same output etc. are all part of the rules. These are rules we're aware of.

It can reduce the need for developers to manually add memoization code.

For example, you may not need to add useCallback and useMemo everywhere as React is going to optimize that for you.

Here is an example,

How you can get Next.js 15 React Compiler for a new project:

How can you enable React Compiler?

There are 2 modes:

  1. Opt-in
  2. Compile all Components

๐Ÿงฉ Opt-in mode: React Compiler can be enabled in annotation mode, which allows developers to control which components are optimized. This is seen in the left terminal.

โœจ Compile all components: Setting it to true will get all components to get optimized.

Is React Compiler a Silver Bullet?

While React Compiler is a powerful tool, it's essential to remember:

  • ๐Ÿ˜Ž Understanding Performance Optimization: A solid grasp of performance optimization techniques is still valuable. There might be situations where the compiler misses optimizations or requires your input for complex components.
  • ๐Ÿงช Experimental Stage: React Compiler is still under development, and its capabilities may evolve over time.

โ€‹

โ€‹

Latest Frontend News

Find out if people on Twitter ๐Ÿšข actually ship code or if they're just shiptalking with Ship Talkers โ†—๏ธ.

โ€‹GPT skeleton โ†—๏ธ converts your components into Skeleton UI. You can simply copy paste.

โ€‹Beautiful Gradients โ†—๏ธ ready to use for your projects or apps or to add a little whimsy to your apps.

Add sounds to your application for user clicks or to have some fun, with the use-sound hook โ†—๏ธ.

โ€‹Astro 4.10 is out โ†—๏ธ โœจ Changes include,

  • Easier environment variable management with a new astro:env module.
  • Broader rewrite functionality - now supports all HTTP methods.
  • Embed Astro components in server-side apps built with frameworks like PHP.
  • Streamlined Container API usage in Vite environments.

What if there was a Next.js form lib that does both client and server validation from one Zod schema, well, this is possible through conform โ†—๏ธ.โ€‹

โ€‹Tailwind released a new version โ†—๏ธ of `prettier-plugin-tailwindcss` โœจ that automatically cleans up unnecessary whitespace in your class lists

Weekly Youtube Videos

Check it out and subscribe to my channel โ†—๏ธ for more Frontend, Leadership and Career Development content.

Modern Authentication Tutorial with Next.js | Clerk, Lucia, TypeScript, Tailwind

video previewโ€‹

The Most Underrated feature in Nextjs 15
โ€‹
โ€‹

video previewโ€‹

What do you think of today's Newsletter? Simply click on one of the links below.

A Frontend Newsletter that you'll love! ๐Ÿ’–