Greatest Hits: The Most Popular and Most Useful Posts I've Written
This is a post in the Site Administrivia series.
Intro 🔗︎
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
- Why React Context is Not a State Management Tool (and Why it Doesnt Replace Redux): any extensive and definitive answer to the frequent questions about "does Context replace Redux?"
- Learn with Jason livestream: Learn Modern Redux with Mark Erikson: a livestream episode with Jason Lengstorf, where we discuss how Redux has changed over time, and live-build an app with Redux Toolkit, TypeScript, and RTK Query.
- State of Redux 2021: a vidcast talk that covers Redux's usage and popularity, the evolution of React-Redux, and how Redux Toolkit simplifies Redux logic
- JS Party #146: When (and when not) to reach for Redux: a transcript excerpt from my JS Party podcast appearance, where I addressed the importance of choosing tools based on the problems you need to solve, and compare the use cases for Redux, Context, Apollo, and React-Query
- 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
How Web Apps Work 🔗︎
I wrote a blog post series on "How Web Apps Work", intended to be an introduction to key concepts, terms, and technologies related to web development, aimed at new developers in general as well as devs with Java/C++ experience who are getting into web dev for the first time:
- How Web Apps Work: HTTP and Servers
- How Web Apps Work: Client Development and Deployment
- How Web Apps Work: Browsers, HTML, and CSS
- How Web Apps Work: JavaScript and the DOM
- How Web Apps Work: AJAX, APIs, and Data Transfer
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
- Debugging Software: a presentation based on the original "Debugging Tips" post, with more detailed info on how to approach debugging, as well as useful tools and techniques
- Using Git for Version Control Effectively: a broad but detailed look at what Git is, how it works, and tips and techniques for using it effectively
- 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
Learning Resources 🔗︎
- JavaScript for Java Developers: an extensive slideshow that covers everything you need to know about modern JS syntax, concepts, and ecosystem usage. Great for experienced devs coming to JS from another language.
- 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
External Writing 🔗︎
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:
- RTK tutorials: the RTK "Basic/Intermediate/Advanced" tutorial sequence
- Usage Guide: instructions on how to use Redux Toolkit effectively
and my links list repos:
markerikson/react-redux-links
: React/Redux Links: a curated list of React and Redux-related articles and resourcesmarkerikson/redux-ecosystem-links
: Redux Addons Catalog: a curated list of Redux-related addons and tools
This is a post in the Site Administrivia series. Other posts in this series:
- Feb 16, 2022 - I'm Joining Replay!
- Aug 01, 2020 - Greatest Hits: The Most Popular and Most Useful Posts I've Written
- Jun 17, 2018 - Redux, Writing, Responsibilities, Burnout, and a Request for Help
- Nov 17, 2016 - Posts on PacktPub: "Generic Redux Modals" and "Building Better Bundles"
- Aug 30, 2016 - The Obligatory "Hello World"