<!DOCTYPE html>
<html>
<head>
<style>.ck-link { text-decoration: underline; }</style>
<style>@media only screen { .email * { word-break: break-word; } }
@media screen and (max-width: 384px) { .mail-message-content { width: 414px !important; } }
@media only screen and (max-width:600px) { .ck-mobile-font-size { font-size:50px !important; } }</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="message-content" style="font-size:16px;max-width:600px;padding:10px 20px 20px 20px">
<table cellpadding="0" cellspacing="0" style="width:100%;margin:0 auto"><tbody><tr><td>
<p class="" style="margin-bottom:1em">Hey Andrea,</p>
<p class="" style="margin-bottom:1em">State management can get complicated fast 🙃 Redux, context, localStorage, custom stores… there are a tons of ways to do it.</p>
<p class="" style="margin-bottom:1em">But for things your users should be able to <em>share,</em> like filters, searches, and view preferences the simplest solution is often right in front of you: <strong>the URL</strong>.</p>
<p class="" style="margin-bottom:1em">In this <a href="https://click.kit-mail6.com/lmulxq6dprsmhnr36zqi6h8kvqv00igh4xov/dphehmue8g7403cm/aHR0cHM6Ly93d3cuZXBpY3dlYi5kZXYvdGlwcy91cmwtYXMtdGhlLXNvdXJjZS1vZi10cnV0aH4wbjNmag==" target="_blank" class="ck-link" rel="noopener noreferrer" url-id="1805276951">new tip</a>, Alem shows how to use the URL to manage search state in a React Router app.</p>
<p class="" style="margin-bottom:1em">He walks through how to:</p>
<ul class="unordered_list">
<li class="list_item"><span>Read search params with <code>useSearchParams</code></span></li>
<li class="list_item"><span>Use the <code><Form></code> component to submit search queries to a route</span></li>
<li class="list_item"><span>Persist the search value in the URL instead of local state</span></li>
<li class="list_item"><span>Filter products on the server in the loader based on the URL’s <code>q</code> param</span></li>
<li class="list_item"><span>Share the exact same filtered results simply by copying the link</span></li>
</ul>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="text-align:center;table-layout:fixed;float:none" class="email-image"><tbody><tr><td align="center"><figure style="margin-top:12px;margin-bottom:12px;margin-left:0;margin-right:0;max-width:800px;width:100%"><div style="padding-bottom:10px;display:block"><img src="https://embed.filekitcdn.com/e/xpcVJ86QdonnRMFaJVRKG7/2T4CurFKbadRiUBc6G24Ku/email" width="800" height="auto" style="max-width:100%;height:auto;border-radius:4px 4px 4px 4px;width:800px;height:auto;object-fit:contain"></div>
<figcaption style="text-align:center;display:none"></figcaption></figure></td></tr></tbody></table>
<p class="" style="margin-bottom:1em">This approach makes it easy for users to send each other the exact page state they’re looking at.</p>
<p class="" style="margin-bottom:1em">If you want to learn more techniques like this and get comfortable building with React Router, join Alem for <strong>React Router Fundamentals – Painting the Screen</strong>, a live 2-day workshop where you’ll explore the fundamentals of React Router’s Framework Mode, work on building an e-commerce store, and learn how to use metadata, loaders, and data-fetching to present data effectively.</p>
<p class="" style="margin-bottom:1em"><a href="https://click.kit-mail6.com/lmulxq6dprsmhnr36zqi6h8kvqv00igh4xov/e0hph0u7qgnp79t8/aHR0cHM6Ly93d3cuZXBpY3dlYi5kZXYvZXZlbnRzL3JlYWN0LXJvdXRlci1mdW5kYW1lbnRhbHMtcGFpbnRpbmctdGhlLXNjcmVlbi0xMi0xMC0yMDI1" target="_blank" class="ck-link" rel="noopener noreferrer" url-id="1805276952"><strong>✨ Save 30% during early bird. ✨</strong></a></p>
<p class="" style="margin-bottom:1em">See you in the workshop,<br> — The Epic Web Team</p>
</td></tr></tbody></table>
<br>
<br>
<small>
<a href="https://click.kit-mail6.com/lmulxq6dprsmhnr36zqi6h8kvqv00igh4xov/wnhxxrqwi6uqxpo5q5c7/aHR0cHM6Ly9rZW50Y2RvZGRzLmNvbS8_bWVzc2FnZT1Zb3UlMjBoYXZlJTIwYmVlbiUyMHVuc3Vic2NyaWJlZCUyMGZyb20lMjBFMkUlMjBSZWFjdCUyMFdpdGglMjBGdW5kYW1lbnRhbHMlMjBMaXZlJTIwV29ya3Nob3AlMjAyMDI1JTIwRW1haWxz" trigger-id="4505827" url-id="1805276953">Unsubscribe from React Router fundamentals Live Workshop 2025 Emails</a> or <a href="https://unsubscribe.kit-mail6.com/lmulxq6dprsmhnr36zqi6h8kvqv00igh4xov" class="unsubscribe-link">Unsubscribe from everything</a>
<br><br>
P.O. Box 562, American Fork, Utah 84003
</small>
</div>
<!-- -->
<img src="https://open.kit-mail6.com/lmulxq6dprsmhnr36zqi6h8kvqv00igh4xov" alt="">
</body>
</html>