I've accumulated a decent number of posts on this blog over the last few years. I've received a lot of compliments on the quality and usefulness of many of them, with comments like:
- This is by far the best, most comprehensive blog post I've seen on this sub; by an author who clearly has a deep and precise understanding of how React and Redux work. Well done!
/u/minty901 on Reddit
- I imagine it's a pretty thankless task being the redux maintainer these days, especially since useReducer appeared. Despite this Mark is always a positive, calm and insightful voice in all the React discussions I read. And this is a post that embodies all of those things.
@RichieAHB on Twitter
- Just wanted to say that ever since I started using redux in a professional setting a little while back, I've become a huge proponent. And that's definitely thanks in part to your engagement with the community and all your writings. So, thanks for taking the time to answer so many people's questions.
/u/Yodiddlyyo on Reddit
I frequently find myself copying and pasting links to several specific posts over and over to answer people's questions. I also recently asked folks which of my posts they found to be the most useful, and other folks have said they wished there was a list of some of the best posts in one place so they don't have to browse through the whole blog.
So, here you go: the posts that I'd classify as my "greatest hits", based on how often I link them and how much people seem to appreciate them.
Greatest Hits, By Category
Redux: Status, Use Cases, and Comparisons
- Redux - Not Dead Yet!: a clarification of Redux's status ("IT AIN'T DEAD!"), with comparisons of use cases and usefulness vs other tools like React Context
- Reactathon 2019 Keynote: The State of Redux: a conference talk that covers Redux's usage and popularity, status updates on React-Redux and Redux Toolkit, and a quick look at the Redux DevTools "action stack trace" feature.
- React, Redux, and Context Behavior: a short comparison of how Context and React-Redux pass down values and handle updates
React and Redux Internals and Design
- A (Mostly) Complete Guide to React Rendering Behavior: my exhaustively detailed walkthrough of how React handles rendering, and how that behavior changes with regards to optimizations, Context, and React-Redux
- The Tao of Redux, Part 1: Implementation and Intent: looks at how the Redux core works internally, how different parts of the Redux ecosystem rely on aspects like immutability, and why Redux was designed to work in certain ways
- The History and Implementation of React-Redux: covers how Redux works with a UI layer, the history of how React-Redux has changed over time, and key implementation details of each version
- ReactNext 2019: A Deep Dive into React-Redux: a conference talk based on "The History and Implementation of React-Redux"
- Redux Toolkit 1.0: a recap of how why we created Redux Toolkit, the problems it's meant to solve, and the evolution of its API
React Hooks and Architecture
- Thoughts on React Hooks, Redux, and Separation of Concerns: compares the tradeoffs of differing approaches to organizing React logic and components, particularly in relation to React-Redux
- ReactBoston 2019: Hooks, HOCs, and Tradeoffs: a follow-up talk that looks at how approaches for reusing logic in React have changed over time, with thoughts on the tradeoffs involved between hooks and HOCs
Redux Architecture and Practices
- The Tao of Redux, Part 2: Practice and Philosophy: looks at many of the common usage patterns that exist around Redux, and explains why they even exist in the first place and why certain patterns are considered "idiomatic Redux"
- Redux Fundamentals Workshop Slides: the slides from my 2018 "Redux Fundamentals" workshop, a full 2-day set of materials that cover everything about how Redux works from the ground up and how to use it.
- Thoughts on Thunks, Sagas, Abstraction, and Reusability: responds to several concerns about using thunks and sagas with Redux, and discusses why those tools are useful
- Using Reselect Selectors for Encapsulation and Performance: explains the concept of "selector functions", when and how to use them, and how to use the Reselect library to create memoized selectors
- Why Redux Toolkit Uses Thunks for Async Logic: a quick look at reasons why I selected thunks instead of sagas as the default async middleware for Redux Toolkit
- Practical Redux, Part 6: Connected Lists and Performance: teaches why connecting multiple components can be useful and how it can improve performance in React-Redux apps
- Practical Redux, Part 7: Form Change Handling and Feature Reducers: shows alternate patterns for organizing "per-feature" logic besides the typical
combineReducers, as well as techniques for debouncing form inputs when updating Redux data
- Practical Redux, Part 10: Managing Modals and Context Menus: demonstrates techniques for controlling pieces of UI like modals and context menus while staying within the restrictions of normal Redux usage
Other Technical Content
- Learning and Using TypeScript as an App Dev and a Library Maintainer: a recap of my own sequence of learning various static and dynamically-typed languages, how I eventually learned TypeScript, and my opinions on the pros and cons of using TS and how to use it effectively.
- Debugging Tips: My tips on learning how to effectively debug code, with some war stories of interesting problems I've debugged and fixed
- Git Under the Hood: Internals, Techniques, and Rewriting History: a slideset that covers how Git works internally and techniques you can use to modify your Git history
- Rewriting Your Git History and JS Source for Fun and Profit: a highly detailed look at how I rewrote an entire Git repository's history while rewriting the JS source to modernize it
- Building a MEAN.js AngularJS Project with Create-React-App: details on how I used CRA's build tooling to compile a legacy AngularJS project
- Resources for Learning React: my top recommended tools and tutorials for learning React
- Resources for Learning Redux: my top recommended tools and tutorials for learning Redux
Besides this blog, I've written several major sections of the Redux docs:
- Redux core docs:
- Redux Essentials tutorial: a brand-new comprehensive tutorial sequence that covers everything you need to use Redux, "the right way", using our latest recommended tools and practices
- Redux Style Guide: a list of recommended patterns and practices for writing Redux apps
- Redux FAQ: my first contribution, a large FAQ section answering many common questions about Redux with links to additional resources
- Redux core docs: Structuring Reducers: a usage guide section covering techniques for organizing and writing reducer logic, including topics like normalizing data and immutable updates
- Redux Toolkit docs:
and my links list repos:
This is a post in the Site Administrivia series. Other posts in this series:
- Aug 30, 2016 - The Obligatory "Hello World"
- Nov 17, 2016 - Posts on PacktPub: "Generic Redux Modals" and "Building Better Bundles"
- Jun 17, 2018 - Redux, Writing, Responsibilities, Burnout, and a Request for Help
- Aug 01, 2020 - Greatest Hits: The Most Popular and Most Useful Posts I've Written