How React Compiler Performs on Real Code
Exploring the impact of React Compiler on initial load and interaction performance. With numbers. Measured on a real app.
Exploring the impact of React Compiler on initial load and interaction performance. With numbers. Measured on a real app.
My step-by-step process for implementing a new feature from an idea to a production-ready solution using Modal Dialog as an example.
Investigating CSS animations in React by building some useful components like slide-in drawers, expandable search field, and fancy hover effects.
Looking into what the new CSS :has selector is and how it can be used to improve our React code. Includes practical and beautiful examples.
Investigating whether we can forget about memoization in React, now that the React Compiler is open-sourced.
Did you know that React Compiler is not actually React 19? But when can we expect it then and forget about memo in React? And what exactly will change when the Compiler is released?
Looking into what React Concurrent Rendering is, what hooks like useTransition and useDeferredValue do, what are the benefits and downsides of using them.
Deep dive into closures in JavaScript and React: how they appear, why we need them, what stale closures are, and how to prevent and fix them in React
How CSS positioning works, what is Stacking Context, how to escape overflow:hidden with CSS, why we can't do everything with CSS and need Portals, how Portals work
Looking in detail into how React reconciliation algorithm works. Explore in the process quirks of conditional rendering, the 'key' attribute, and why we shouldn't declare components inside other components.
How to change elements base on DOM measurements: what is the problem with useEffect, how useLayoutEffect fixes it, what is browser painting, and how SSR plays a role here
Looking into why we need access to DOM in React, how Refs can help with that, what are useRef, forwardRef and useImperativeHandle hooks, and how to use them properly.
Looking into how to catch and handle errors in React: usages, patterns and caveats of try/catch and ErrorBoundary, what's possible, what's not, and how to catch async errors with ErrorBoundary
Deep dive into debounce and throttle in React. What is debounce and throttle, how to use them in React properly, how to avoid breaking them when state and re-renders are involved.
Deep dive into Promises and data fetching in React: what is a Promise, how and why Promises can cause race conditions and what to do about it.
Deep dive into data fetching in React. What is performance, fundamental libraries-agnostic patterns and techniques, how react lifecycle and browser limitations affect data fetching and apps rendering time and order.
Sneak peek behind the scenes. How the blog has started, how I come up with the ideas, how the blog is promoted, the money question: present and future. And the secret of the cats of course!
Looking into PureComponent and the problem it solved, how it can be replaced now in the hooks & functional components world, and discovering an interesting quirk of React re-renders behavior
React re-renders "cheatsheet". Short descriptions with visual aid and code examples of: what re-renders are, what triggers them, most important re-renders related patterns and antipatterns to remember.
Looking into what is React Element, exploring various children vs parents relationship in React, and how they affect re-renders
What is the purpose of useMemo and useCallback hooks, mistakes and best practices in using them, and why removing most of them might be a good idea.
How to organize React projects in a way that is scalable, structured, modular, consistent and logical.
Looking into how React "key" attribute works, how to use it correctly, how to improve performance of lists with it, and why array index as key is a good idea sometimes
What is components composition? How do you know when to start splitting a big component into smaller pieces and how to compose them properly? What makes a good component?
Looking into how refs work when not attached to DOM and how to use them to implement advanced usePrevious hook to get the previous state or props value.
What is a React higher-order component? How it can be used and why? And do we still need them in modern apps in React hooks era?
Exploring how to pass React components as props, why we would want to do it, and what is the best pattern for the job
De-mystifying Context and its influence on React apps' performance. Learning a few useful patterns in the process, that could help minimize the re-renders impact and improve code's readability and scalability.
Exploring performance implications of custom React hooks and how not to shoot yourself in the foot when writing or using them.
Looking into patterns that lead to poor performance of React apps, why they are bad, and how to recognise and avoid them.
Exploring how to discriminate unions properly and how this pattern can be useful for React developers' everyday professional life.
Learning while coding what is the purpose of exhaustiveness checking, how the narrowing of types works and when typescript enums could be useful.
Diving into advanced typescript concepts and understanding how and why we need things like type guards, keyof, typeof, is, as const and indexed types.
Looking into why we need generics in Typescript, and how to use them to develop re-usable React components. And as a bonus: the secret of React hooks đ
How would you deal with something like relocating to another country and becoming digital nomad? A story on how I took approach that I would use as a developer with large projects at work.
A simple trick that allows you to write in typescript and consume right away custom eslint rules. No compilation, build or publish/link step, just write code and use it!
Those tricks can speed up your yarn install by up to 50%
Learn how Node resolves modules and deals with packages by pretending to be a detective and debugging a mysterious build failure
This page describes the theory and some technical details behind the webpack-deduplication-plugin plugin, which helped us reduce javascript size in Jira by ~10%.