<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://thebugdojo.com</loc>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata</loc>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog</loc>
<lastmod>2026-09-18T17:07:49.259Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills</loc>
<lastmod>2026-09-18T17:07:49.259Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/faq</loc>
<lastmod>2026-09-18T17:07:49.259Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/search-box-has-no-effect</loc>
<lastmod>2026-04-17T19:07:23.341Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/thermostat-shows-zone-number-instead-of-temperature</loc>
<lastmod>2026-06-20T14:25:05.517Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/frozen-input</loc>
<lastmod>2026-04-17T17:33:06.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/name-edit-does-nothing-on-screen</loc>
<lastmod>2026-04-18T03:41:28.768Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/announcement-stays-on-screen</loc>
<lastmod>2026-06-04T10:32:32.106Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/toggle-that-wont-toggle</loc>
<lastmod>2026-04-17T17:47:17.573Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/search-input-never-gains-focus</loc>
<lastmod>2026-06-03T19:04:24.285Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/form-keeps-showing-the-previous-user</loc>
<lastmod>2026-06-03T19:32:35.800Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/undo-brings-back-the-wrong-name</loc>
<lastmod>2026-04-26T04:52:35.521Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/header-stays-pinned-after-scrolling-back-up</loc>
<lastmod>2026-06-17T20:32:33.946Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/memo-doesnt-hold</loc>
<lastmod>2026-05-01T13:21:38.752Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/array-push-freezes-the-list</loc>
<lastmod>2026-04-20T15:04:42.670Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/counter-spins-up-and-never-stops</loc>
<lastmod>2026-04-17T17:49:32.542Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/counter-freezes-at-1</loc>
<lastmod>2026-05-01T19:18:48.252Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/run-counter-never-stops</loc>
<lastmod>2026-06-04T10:58:17.744Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/score-wont-update</loc>
<lastmod>2026-05-01T18:25:23.071Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/added-item-shows-up-blank</loc>
<lastmod>2026-05-02T09:24:46.938Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/list-ignores-everything-you-type</loc>
<lastmod>2026-04-26T03:40:02.513Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/completing-a-task-has-no-effect</loc>
<lastmod>2026-04-26T04:26:36.233Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/counter-resets-while-typing</loc>
<lastmod>2026-06-04T10:35:41.018Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/search-hook-ignores-what-you-type</loc>
<lastmod>2026-04-18T06:30:15.030Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/mode-label-never-switches</loc>
<lastmod>2026-06-04T11:07:15.008Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/click-counter-never-shows-on-screen</loc>
<lastmod>2026-04-18T06:42:15.715Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/child-re-renders-on-every-keystroke</loc>
<lastmod>2026-05-02T09:44:17.785Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/filter-toast-on-load</loc>
<lastmod>2026-04-20T15:35:11.828Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/edit-duplicates-the-note-instead-of-updating-it</loc>
<lastmod>2026-04-18T06:48:19.985Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/score-display-ignores-clicks</loc>
<lastmod>2026-06-04T11:18:27.999Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/unlike-button-keeps-adding-likes</loc>
<lastmod>2026-04-18T06:23:59.854Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/log-button-always-records-a-blank-entry</loc>
<lastmod>2026-04-18T03:52:18.262Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/uncontrolled-input-ignores-reset</loc>
<lastmod>2026-04-26T04:32:35.692Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/count-lands-on-the-wrong-row</loc>
<lastmod>2026-05-02T09:01:45.057Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/doubled-counter-frozen-at-zero</loc>
<lastmod>2026-04-18T03:20:15.731Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/search-result-shows-the-previous-query</loc>
<lastmod>2026-04-26T04:13:08.876Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/total-price-is-always-one-click-behind</loc>
<lastmod>2026-04-18T06:06:11.605Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/tab-switch-shows-the-wrong-content</loc>
<lastmod>2026-05-01T18:15:00.923Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/counter-never-updates</loc>
<lastmod>2026-04-17T17:18:48.829Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/settings-overwritten-by-defaults</loc>
<lastmod>2026-04-26T03:49:16.798Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/profile-panel-always-shows-the-first-user</loc>
<lastmod>2026-05-02T09:30:43.833Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/handler-runs-on-load-not-on-click</loc>
<lastmod>2026-05-02T14:29:58.497Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/summary-shows-zero-after-items-load</loc>
<lastmod>2026-06-03T04:15:24.054Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/triple-score-always-adds-one</loc>
<lastmod>2026-06-03T19:00:15.759Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/review-panel-goes-blank-on-first-click</loc>
<lastmod>2026-06-16T01:00:37.532Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/notification-badge-never-appears</loc>
<lastmod>2026-06-16T01:04:39.114Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/leaderboard-stays-in-original-order-after-sorting</loc>
<lastmod>2026-06-20T14:03:27.949Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/timer-that-stacks</loc>
<lastmod>2026-04-18T03:33:44.874Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/counter-never-starts-ticking</loc>
<lastmod>2026-04-26T04:59:16.604Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/listener-that-multiplies</loc>
<lastmod>2026-04-26T05:08:48.777Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/cant-type-without-losing-focus</loc>
<lastmod>2026-05-01T13:28:55.291Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/star-jumps-to-the-wrong-book</loc>
<lastmod>2026-05-01T13:51:50.569Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/button-ignores-keyboard-shortcut</loc>
<lastmod>2026-05-01T19:12:17.726Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/first-apply-always-shows-zero-discount</loc>
<lastmod>2026-05-01T19:15:51.656Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/filter-reruns-on-every-like-click</loc>
<lastmod>2026-05-02T14:18:17.342Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/filter-buttons-rerender-on-every-search-keystroke</loc>
<lastmod>2026-06-03T04:39:42.069Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/notes-follow-the-wrong-task</loc>
<lastmod>2026-06-04T11:10:47.167Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/score-drops-when-toggling-sound</loc>
<lastmod>2026-06-04T11:14:27.639Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/cart-summary-re-renders-on-toggling</loc>
<lastmod>2026-06-16T09:13:12.530Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/stock-alert-ignores-the-new-threshold</loc>
<lastmod>2026-06-20T14:49:58.010Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/resolving-a-ticket-scrambles-the-other-notes</loc>
<lastmod>2026-06-20T14:53:20.831Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/notification-badges-rerender-on-every-typed-character</loc>
<lastmod>2026-06-20T14:57:37.128Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/force-refresh-does-nothing</loc>
<lastmod>2026-04-26T04:43:48.550Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/kata/activate-button-always-shows-ref-is-null</loc>
<lastmod>2026-06-16T05:52:04.977Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/choosing-keys-for-list-items-4a75cd14</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-push-on-a-props-array-7c7d3502</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ref-current-as-a-useeffect-dependency-25e62e7d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/child-rendering-after-a-parent-state-update-97211a82</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/returning-null-vs-conditional-parent-rendering-4b38f1c5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ternary-vs-separate-jsx-branches-47a95a2b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/conditional-jsx-with-variables-7a0e09f4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/returning-null-and-effects-8fe23483</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/initializer-function-vs-immediate-call-de4f8d2c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-double-calling-updater-functions-8858d1b6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-timing-during-server-rendering-98a23f4a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-effect-double-execution-6ca9dfce</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecallback-dependency-change-behavior-283cca97</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-usecallback-actually-memoizes-5ed5b759</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-rendering-lifecycle-phases-23bd9f66</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/effects-on-the-performance-track-e7a6959f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/flamegraph-duration-meaning-2a73aecc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/getuser-making-multiple-fetch-calls-c4d79fa3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/multiple-parallel-server-component-tracks-b341c358</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/finding-rendering-performance-problems-in-devtools-a286f116</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-native-devtools-feature-set-3eb0ee31</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecallback-inside-loops-rule-violation-dd960278</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-data-across-the-server-client-boundary-component-ref-46356f6f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usememo-without-a-dependency-array-d48978df</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usememo-with-memoized-child-component-0e11505a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/module-variable-increment-under-strictmode-fdc45444</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutating-a-shared-object-between-two-jsx-elements-ec0620aa</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/rootunmount-lifecycle-behavior-7ea02bee</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/dom-mutation-during-render-406133eb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/memoizing-function-with-usememo-vs-usecallback-472319dc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/component-communication-through-variables-e6e01594</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-subscription-with-a-cleanup-function-0771414e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hook-naming-and-lint-behavior-ed8dcedf</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hooks-inside-event-handlers-2a408e9e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-hooks-calling-hooks-bba91258</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/a-usestate-hook-guarded-by-a-flag-dc26d4b2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/linter-purpose-in-effects-8547384b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/relying-on-usememo-for-correctness-235fe0ab</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hook-after-conditional-return-6971c5ea</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hooks-inside-usememo-callback-f53fe223</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/higherorder-hooks-f616f6e1</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-inside-server-components-92b70e4d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/use-client-directive-in-a-component-file-d7120844</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/browseronly-api-during-ssr-159e306a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/client-component-rendering-server-components-e2da75fa</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/synchronizing-state-between-components-f8c13ac5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/multiple-renders-on-the-same-root-8168791e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reusing-an-unmounted-root-0dc5b05b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutating-external-variable-during-render-e45db369</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-returning-a-partial-state-object-f71f71e6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-dispatch-during-component-rendering-a2a661ea</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-vs-usestate-mental-model-92b2fe8a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-vs-usestate-for-interval-ids-f6df55bd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/refs-during-rendering-89736318</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-object-identity-across-renders-18b0486e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/expensive-ref-initialization-6361795b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-with-identical-parent-props-00b020ee</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-component-updating-local-state-a2880b04</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-default-prop-comparison-1248cfde</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/omitting-dispatch-from-useeffect-dependencies-19f23876</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/wrapping-every-component-in-react-memo-483d4b2e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/forwarding-refs-through-multiple-layers-908986e7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useimperativehandle-instead-of-exposing-dom-node-e3a47b9a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/refs-vs-declarative-props-1147df3d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-double-render-with-forwardref-e1fcc5f5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/default-context-value-behavior-b3071c92</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/createcontext-default-value-after-provider-updates-67805433</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/context-provider-value-as-an-inline-object-6363c73b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/how-react-detects-context-value-changes-dc0eb1a9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/splitting-state-and-dispatch-contexts-05ade82e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-a-server-actions-return-value-cec73d41</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/early-rootrender-during-hydration-788102ce</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/promise-transfer-between-server-and-client-0e1623c3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/incrementing-a-global-variable-during-render-660e5367</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/chaining-two-custom-hooks-with-dependent-data-d55669cd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/destructuring-ref-as-a-prop-in-react-19-a203ee57</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/devtools-hook-index-numbering-6a92f1e0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/logging-inside-a-strictmode-wrapped-component-0b2c741c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-setstate-with-an-already-current-value-6f11dd67</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/abortcontroller-per-fetch-hook-5e2f8b17</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-boxref-current-inside-useeffect-on-mount-ce6eefd0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/syncing-local-state-to-an-initialvalue-prop-via-c4499f27</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/inline-ref-callback-firing-twice-on-re-render-2d437264</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-usememo-inside-a-map-callback-d57e5c4e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/asserting-immediately-after-fireevent-without-1887f1f3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/test-assertions-failing-after-a-react-18-upgrade-bc0ada73</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/skipping-an-effects-first-render-with-a-useref-ebd68b4b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-does-usememo-cache-42be097e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-an-async-function-directly-to-useeffect-b9bde9be</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-usecontext-inside-a-react-router-loader-6fd87471</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/toggling-between-two-branches-rendering-the-same-b0cd70d8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/resizeobserver-loop-limit-exceeded-console-warning-b58e9324</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/choosing-between-ssg-ssr-and-csr-598b8814</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/polyfilling-useeffectevent-with-a-ref-and-0a5112bd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/using-console-log-to-detect-component-re-renders-62ecfefe</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/using-component-defaultprops-in-a-react-18-531ddfa6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/route-handler-vs-direct-data-access-from-a-server-component-dcfa6108</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/how-to-run-useeffect-conditionally-1ba8b2c4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reactive-values-inside-a-component-body-c0931569</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-action-object-shape-ae5a9a8e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-function-incrementing-a-counter-d5113949</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-mental-model-36209e85</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useonlinestatus-called-by-two-sibling-components-635c2b64</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/conditionally-calling-getsorted-inside-a-component-b3214745</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/race-conditions-in-fetching-dcfe9b27</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usemount-as-a-generic-lifecycle-wrapper-ccea5891</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-refs-during-render-9103ec9e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/manual-dom-removal-conflict-ec20f1a7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/flushsync-before-dom-measurement-a86965f7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useimperativehandle-exposing-a-focus-method-d0292921</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/safe-vs-unsafe-dom-manipulation-c7b2009a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/issending-and-issent-as-separate-booleans-61f0c335</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-initialized-from-a-color-prop-fbade00d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/packing-list-storing-items-total-and-packed-e6522466</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/comparing-letters-after-array-remapping-ba5f9e2d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/set-mutation-in-react-state-4a93cf83</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/multiple-selection-state-structure-1ce64fc9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducers-called-twice-in-strict-mode-5d7ad343</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/typing-jsx-children-to-allow-only-html-elements-f5095f66</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-e-target-to-a-formdata-constructor-bce141f5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/omitting-a-reactive-dependency-from-useeffect-02d45673</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-called-with-no-argument-for-a-dom-ref-9cef15d6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/inspecting-all-context-providers-in-react-devtools-57324366</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-vs-redux-when-each-is-the-right-tool-121f8252</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/context-vs-manually-passing-a-props-object-down-the-tree-1535b565</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/error-boundaries-vs-errorelement-in-react-router-when-to-use-2bbccf24</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-vs-solidjs-createsignal-in-component-3534d09c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/returning-null-vs-an-ifelse-wrapper-for-conditional-renderin-5f6e307c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/redux-toolkit-vs-react-context-for-frequent-state-b6cd94b7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/storing-a-date-object-in-a-redux-toolkit-slice-2f54f4ed</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/disabling-strictmode-in-react-router-v7-framework-5833a2f0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/tanstack-query-isfetching-vs-isloading-vs-ispending---each-f-d7a5c923</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/metadata-export-from-a-client-component-file-395f487a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/rendering-the-same-counter-jsx-variable-twice-e0a6633a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/swapping-counters-for-different-players-9863abe2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-function-signature-d89fde27</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/chat-component-reused-across-recipients-f1f58dd5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-return-values-6a142297</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/refreshing-server-component-data-without-a-full-page-reload-25d5fb83</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/catch-all-that-caught-too-much-7bcf14a5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/json-ld-without-head-tag-2f9c630d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/client-component-export-called-in-a-server-action-79829c80</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-a-context-value-via-a-createroot-instance-1b87f3f7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/html-table-structure-and-next-js-hydration-efe7755d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/an-async-server-component-with-a-suspense-child-274bcacc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/math-random-as-a-list-key-3d772e27</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/accessing-key-via-props-key-a41156a4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/fragment-key-requirement-461ca63f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/wrapping-a-database-query-with-reacts-cache-5d6baa4e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/illegal-inline-action-9b2e77d1</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/the-config-that-moved-without-a-rebuild-6abcd01a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/extracted-component-key-placement-39e134db</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/userouters-locale-property-after-app-router-2833f6f0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/two-paradigms-one-form-a03d78ef</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/one-path-two-routers-d820f6ba</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/the-homepage-title-that-stayed-plain-d659dc6a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/the-product-page-that-expected-to-stay-static-82729dcb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ref-that-vanished-e04ab3c9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-use-client-marks-6a19f7bd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/clock-that-didnt-match-3e8c05f2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/chaining-multiple-usestate-updater-calls-7297ba87</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/createroot-vs-hydrateroot-for-ssr-cdb13d69</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/object-literal-in-a-useeffect-dependency-array-4ccf3716</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useimperativehandle-dom-property-access-53af870e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/when-should-you-use-usecallback-544bf185</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-is-a-dependency-array-for-5d4396f3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/inline-function-in-a-useeffect-dependency-array-5f46c160</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecallback-as-a-useeffect-dependency-673f6938</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/callback-props-after-lifting-state-up-1e07b329</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/local-variable-update-inside-a-click-handler-f28d962e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/storing-a-computed-value-in-separate-state-1ee7dc7a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-setter-called-with-an-unchanged-reference-98da5b5c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/selected-item-state-kept-separate-from-the-list-a89445e4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/tracking-mouse-coordinates-as-separate-state-ff6e10c8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/deeply-nested-state-updates-f3ea6cba</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-state-immediately-after-calling-a-setter-880f0544</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/the-import-that-worked-until-you-clicked-382b5771</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-lazy-with-a-dynamic-template-literal-path-65e7ecc5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/url-that-became-object-object-c5e82f1a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-state-inside-a-delayed-callback-917d145b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/three-functional-updater-calls-in-one-handler-885c2c70</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-must-return-next-state-74cc9fb2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/three-direct-state-updates-in-a-single-handler-15da8fae</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mixing-replacement-and-updater-state-updates-52a09917</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strictmode-double-render-purpose-2e4a8560</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/duplicate-list-items-appearing-under-strictmode-afa5704d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strictmode-effect-lifecycle-7bfbbc54</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-effect-running-twice-with-empty-7b95ee83</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-doublerunning-calculations-5d184622</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strict-mode-ref-callback-behavior-0d0e4253</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/three-direct-setnumber-calls-in-one-click-handler-c63f5b6d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-does-usecallback-cache-between-renders-486d784f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-setup-logic-with-an-empty-dependency-28840a0f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/why-choose-usereducer-over-scattered-usestate-2cdb04a8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/forwardref-ref-value-stays-null-692ced9a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-with-provider-in-the-same-component-47d51fd0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-with-nested-incrementing-providers-35bc4da6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-with-multiple-providers-for-one-context-7da3b88f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-component-reading-from-usecontext-3593f54e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/context-object-identity-across-duplicate-modules-34433d96</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-dependency-on-event-handlers-a8f3b17d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-reactive-values-between-hooks-27a0f9fc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usememo-vs-usecallback-7ca21461</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/relying-on-usecallback-for-correctness-9dd12832</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usememo-and-initial-render-performance-91a02ee7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-inside-a-layout-during-navigation-ba285386</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/how-far-does-use-client-spread-1a7fd930</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/parallel-routes-for-two-side-by-side-components-22014874</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/array-mutation-with-push-b0ea3361</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/choosing-a-safe-array-update-method-290b0446</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/updating-a-single-item-in-array-state-8de1d181</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reversing-an-array-stored-in-state-427bf5f5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/removing-an-item-from-array-state-8aae2237</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/inline-arrow-event-handlers-003dfcd6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/nested-onclick-handlers-both-firing-5c7e3c49</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-event-handler-prop-names-892027dd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-dom-methods-inside-useeffect-ac509a41</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-without-a-dependency-array-abd93602</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/dependency-array-behavior-d3cced77</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/events-vs-effects-c953b229</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/fetching-user-data-when-userid-changes-fb94f209</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/storing-fullname-in-state-via-useeffect-f815e74d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/when-does-a-component-actually-need-an-effect-028d55da</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usememo-vs-useeffect-b7f210ea</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/changing-the-key-prop-on-a-component-08415715</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/event-logic-vs-effect-logic-791f251d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/effect-lifecycle-vs-component-lifecycle-0270a78a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-value-across-two-component-instances-a4b8fc58</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-for-persisting-a-setinterval-id-62d5403d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/focusing-an-input-element-after-a-button-click-a74ebeb9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutating-ref-current-during-render-0c2baac3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/effect-cleanup-behavior-30dbd40c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/two-useswr-calls-under-suspense-mode-84799b49</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-a-usestate-setter-as-a-ref-callback-569225c0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/diagnosing-an-invalid-hook-call-error-ae8da1dd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/extracting-effects-into-custom-hooks-50ca7419</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-hooks-and-render-purity-5443db2c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useinterval-with-an-inline-callback-dependency-a685dd14</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useinterval-with-a-new-callback-each-render-2d16dd4c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-with-an-inline-object-prop-9c56f2e8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/delayed-state-without-cleanup-4eeaebf9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/editing-state-in-devtools-6309070c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/why-production-builds-disable-profiling-78ea7533</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-devtools-availability-0ba91069</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/standalone-devtools-connection-292e93aa</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/scheduler-priority-mapping-2d7f38e5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-with-an-inline-callback-prop-76d1f9b4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/interpreting-a-cascading-update-performance-entry-6dddcb20</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/remaining-effects-phase-after-commit-9efa6de5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-vs-calling-event-handlers-4ea180fb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/stoppropagation-behavior-401a5356</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/preventdefault-behavior-7c81e94e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/array-map-with-a-block-bodied-callback-145dd370</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutating-object-state-directly-f52d20b7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/setplayer-called-with-a-partial-object-62371f3d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/storing-functions-in-state-6b0c4faa</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/same-component-rendered-twice-with-usestate-135c44fd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/side-effects-inside-a-reducer-function-8256259a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usedeferredvalue-with-suspense-during-fast-input-bb20f482</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/suspense-fallback-during-client-navigation-01e421c0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/key-prop-usage-during-suspense-navigation-231ecb53</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/suspense-server-error-handling-b943fb11</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-receiving-an-inline-function-prop-e9e29b06</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/profiling-build-component-visibility-b8b10bda</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-returning-cleanup-with-no-setup-2a3fd390</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/when-usememo-actually-provides-value-792a54dc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-actions-describe-interactions-0672a901</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-with-a-third-initializer-argument-43852f95</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/choosing-between-usestate-and-a-local-variable-9993220f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/multiple-related-state-variables-daff58cb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-actually-re-renders-a-component-0d845c09</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/which-react-phase-applies-dom-changes-5df4d223</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reading-state-immediately-after-dispatch-86f025ea</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/frequent-re-renders-with-an-uncontrolled-text-92b923ae</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/logging-state-right-after-calling-its-setter-658ced27</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/event-handlers-across-multiple-component-renders-623a5a09</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/alert-placement-after-setstate-b6d36bb8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-batching-in-event-handlers-7fe241d9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/multiple-setnumber-calls-in-one-handler-c991ed22</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/async-click-handler-with-a-delay-777b6ccd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/purity-of-updater-functions-b6802824</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/which-mutation-pattern-is-safe-in-react-6b14cb1d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/why-immutability-helps-react-optimizations-ce30fd8d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/running-an-effect-only-once-88e4e739</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-arepropsequal-and-a-changed-onclick-28d74e61</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/functional-updater-removes-dependency-need-89c89ef3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-actions-and-batching-8ea155a4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/memoizing-jsx-node-objects-95e288dc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/action-granularity-6282b936</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-debugging-advantage-f85ddc10</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useforminput-shared-across-two-components-9939ac07</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hook-naming-affects-lint-behavior-576881b8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-scope-do-react-keys-need-6d570c4f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/non-hook-utilities-can-be-conditional-d9b5dcba</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/lifecycle-hook-abstraction-problem-be68a4a0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-hook-boundaries-by-purpose-5f3f0a48</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usesyncexternalstore-motivation-d0d0c83b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/custom-hook-purity-during-rendering-569e4ed2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/extracting-useonlinestatus-from-component-logic-c2148534</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-called-without-a-matching-provider-afb6763b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/context-read-by-a-deeply-nested-component-7d255878</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/themecontext-update-with-usercontext-also-present-3283479d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/prop-drilling-alternative-judgment-9023d915</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/controlled-vs-uncontrolled-component-89c7f561</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/keeping-two-sibling-components-in-sync-8e27d696</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/active-index-better-than-booleans-2a5bf76b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/components-must-be-pure-e4fffd66</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strictmode-calling-components-twice-in-development-54f07d55</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/pushing-to-a-locally-created-array-a66b69c3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/rendering-vs-side-effects-faf549eb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/same-inputs-same-output-3d4b970b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/why-react-depends-on-rendering-purity-2f396071</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/using-array-map-inside-react-rendering-b201be3a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reactive-values-in-dependencies-a7541140</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/combining-unrelated-logic-in-one-effect-91e5e2e1</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/stable-values-in-dependency-arrays-f7c5571d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-keys-in-rendered-lists-ccd402a9</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/objects-and-functions-as-dependencies-384cf995</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/simplified-usereducer-implementation-2c9b56e8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/missing-dependency-in-usememo-bed17d3b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-dispatch-in-an-event-handler-c17c5736</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usereducer-vs-usestate-for-complex-components-cd410ed6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/refs-for-visible-ui-state-d0fbc2a8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/side-effects-inside-a-reducer-function-d1c54381</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/empty-dependency-array-vs-no-dependency-array-db650869</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-cleanup-on-dependency-change-dbcb0418</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutating-state-with-useimmerreducer-dd1081db</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/updater-function-removes-callback-dependency-dd6e8342</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/displaying-a-ref-value-in-jsx-e3a55587</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reducer-must-return-new-object-e500e2df</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/index-keys-in-a-reversed-list-193e3ad4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/a-dom-ref-after-element-removal-eae43133</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-refs-through-components-f0f9d05a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecallback-with-a-useeffect-dependency-0e3e6601</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/action-objects-vs-direct-state-updates-f75546b2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/object-literal-as-a-usememo-dependency-f76ad35b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ignore-flag-in-a-data-fetching-effect-f962a051</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/a-variable-read-inside-an-event-listener-fea616dd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/a-ref-based-click-counter-in-jsx-ff79f670</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-inside-loops-ff9e112f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/conditional-ref-forwarding-026dbeb8</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-memo-component-consuming-context-0a2920ed</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ref-callback-cleanup-behavior-005b3311</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/empty-dependency-arrays-8f9e5066</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/shared-object-reference-between-two-variables-c2006566</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/context-provider-value-update-18150563</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/script-that-refused-to-reload-5b9e14c7</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/the-middleware-that-crashed-on-every-request-e7aca8b0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mutation-rules-during-component-render-c8a0e151</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hook-argument-immutability-59d047fd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/synchronizing-page-title-with-product-state-37cc966a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/calling-usestate-inside-a-conditional-block-0272b364</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hooks-in-regular-functions-c8c7a276</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/directly-calling-component-functions-c0a85c88</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/invoking-component-functions-directly-inside-loops-936ead4d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/passing-hooks-as-props-a472d7f2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/manual-component-invocation-versus-jsx-rendering-83c6486f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/function-references-in-useeffect-dependencies-1cfc5daa</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/rootrender-timing-misconception-73fec12b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/hydrateroot-behavior-when-server-and-client-differ-388d17eb</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/suppresshydrationwarning-effect-on-differing-text-e100b465</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/deferred-client-rendering-after-hydration-f209f819</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/server-components-and-client-bundle-size-104d1537</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/misunderstanding-use-server-directive-afffbc05</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/awaiting-data-inside-an-async-server-component-2e2bc955</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/scope-of-the-use-client-directive-74c67992</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/one-component-imported-by-server-and-client-8fb4a584</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/adding-interactivity-to-a-server-component-c17e1df3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strictmode-subtree-behavior-7611d1bf</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/missing-effect-cleanup-detection-2d579a70</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/callback-refs-missing-a-cleanup-function-033c3de1</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/two-usestate-calls-sharing-an-initial-array-2f6243d4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/strictmode-scope-guarantees-d88bd568</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/suspense-activation-source-908b18bc</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/createcontext-in-a-server-component-provider-file-001d7e21</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/serializable-props-between-server-and-client-052a3894</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/object-spread-with-nested-property-mutation-50374afe</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/updating-nested-object-state-correctly-e29ec162</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/array-spread-with-mutated-item-property-c99965c2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/changing-the-key-prop-on-a-component-b5be2666</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/array-index-keys-after-reordering-da014d06</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/conditional-rendering-at-the-same-position-7d84180c</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/toggling-between-a-component-and-an-element-a328046d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reconciliation-and-component-types-4b16ee0a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/mytextfield-defined-inside-its-parent-component-dbc4831a</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/reordering-inputs-with-keys-5fe69cc4</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/an-img-element-keyed-by-image-source-f6cd6df2</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/filter-before-map-70313e1b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/using-with-a-zero-value-in-jsx-1a385b9d</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/math-random-called-during-render-be1114b6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useref-value-read-during-render-47eb9669</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-resolution-with-nested-providers-e8f01f9b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/ref-prop-on-a-custom-function-component-4ca88f38</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/useeffect-logging-count-with-empty-dependencies-98cf2f56</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/nested-suspense-with-different-load-times-9b270b62</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/refs-and-dom-access-timing-9bf2a847</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/component-suspending-during-its-initial-mount-ad6d62fd</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/two-components-in-the-same-suspense-boundary-ad766b33</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/uselayouteffect-vs-useeffect-for-synchronous-dom-operations-90bf0ce0</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/profiler-commit-duration-vs-per-component-render-59d1b721</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/typescript-usestate-update-via-an-intermediate-9e184959</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/what-the-digest-property-on-a-nextjs-production-error-means-c7595c03</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usestate-with-an-explicit-generic-but-no-initial-267655bf</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/proptypes-static-after-upgrading-to-react-19-e13a8880</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/use-client-components-in-the-initial-server-html-6451f83b</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/index-as-key-for-a-list-without-unique-ids-cacc09e6</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/minified-react-error-codes-418-and-423-in-ab0d7c9e</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/dangerouslysetinnerhtml-with-a-full-html-document-0cf5fdbf</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/index-js-vs-page-js-across-two-next-js-codebases-d4f2d4e3</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/popover-api-attributes-in-a-react-component-5767eda5</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/usecontext-without-a-matching-provider-0d528bea</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/react-context-provider-bundling-multiple-state-086d239f</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/drills/abortcontroller-cleanup-in-a-strictmode-useeffect-85d47f33</loc>
<lastmod>2026-09-18T17:07:51.854Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-button-click-does-nothing-or-fires-early</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-derived-state-one-step-behind</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-input-loses-focus-every-keystroke</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-input-not-working-cant-type</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-list-state-wrong-row-key-index</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-maximum-update-depth-exceeded</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-memo-not-working-reference-identity</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-ref-is-always-null-forwardref</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-rendered-more-hooks-than-previous-render</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-setstate-does-nothing-same-value</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-state-not-updating-mutation</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-state-one-click-behind</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-too-many-re-renders-setstate-in-render</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-useeffect-cleanup-not-working</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-useeffect-fires-on-page-load</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-useeffect-only-runs-once</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-usememo-not-updating</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-usereducer-action-not-working</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/react-useref-not-updating-ui</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://thebugdojo.com/blog/usecallback-stale-closure</loc>
<lastmod>2026-09-18T17:07:49.357Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
