Contributing Callsite Revalidation Opt-out to React Router


React Router Guide

Contributing Callsite Revalidation Opt-out to React Router

If you’ve used React Router’s data APIs, you’ve probably noticed it revalidates all your loaders after mutations, even when you know that’s completely unnecessary.

I got tired of implementing shouldRevalidate functions that ended up feeling really awkward. I found an old proposal from Ryan Florence in GitHub, and decided to take a crack at implementing it myself. A few months and one merged PR later, it shipped in React Router v7.11.

This is the story of how that happened and my experience tackling it.

Check out the article here.

Have a great Tuesday ✌️

ProgrammingAreHard

For developers looking to learn useful tips and tricks.

Read more from ProgrammingAreHard

React Router Guide Untangling dialogs in React Router I have been struggling with determining how to best implement dialogs in React Router apps for years: useState to control their open state Forms vs fetchers for data submissions resource routes to form data(<select> options) useEffect for listening for the action data to close the dialog useEffect for listing for a toast message There's a lot to consider. However, tons of these problems go away if you move dialogs into their own dedicated...

React Router Guide How to execute api requests in React Router There's not a lot of opinions on how to structure code that interacts with apis in React Router apps. This is what I've come up with and the post I wish existed before I started using React Router's actions/loaders with my existing api(and if middleware existed back then). Check out the article here. Have a great Tuesday ✌️ Unsubscribe · Preferences

React Router Guide How I used Prettier to help me find and fix a bug I recently encountered a bug where a system that's been working for years stopped working after a code release. The confusing bit was that the updated code had absolutely nothing to do with the system that was breaking. Through a series of trial and error and lots of scratching my head, I ended up using Prettier to pinpoint where the problem was and was able to find and fix the bug. Check out the full write-up here. Have a...