<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[ReactTraining.com Blog Feed]]></title>
        <description><![CDATA[React, JavaScript, Training, and other Web Dev topics.]]></description>
        <link>https://reacttraining.com</link>
        <image>
            <url>https://reacttraining.com/images/default.png</url>
            <title>ReactTraining.com Blog Feed</title>
            <link>https://reacttraining.com</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Sat, 13 Dec 2025 16:33:16 GMT</lastBuildDate>
        <atom:link href="https://reacttraining.com/rss.xml" rel="self" type="application/rss+xml"/>
        <language><![CDATA[en]]></language>
        <item>
            <title><![CDATA[Blog Claps, and lessons on Hooks]]></title>
            <link>https://reacttraining.com/blog/blog-claps-and-lessons-on-hooks</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/blog-claps-and-lessons-on-hooks</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Thu, 21 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[3 of 3 Derived State]]></title>
            <link>https://reacttraining.com/blog/derived-state</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/derived-state</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <category><![CDATA[State]]></category>
            <pubDate>Wed, 26 May 2021 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flow Control in React]]></title>
            <link>https://reacttraining.com/blog/flow-control-in-react</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/flow-control-in-react</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[JSX]]></category>
            <category><![CDATA[Beginner]]></category>
            <pubDate>Thu, 14 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Hooks You Probably Don't Need, 2025 edition]]></title>
            <link>https://reacttraining.com/blog/hooks-you-probably-dont-need-2025</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/hooks-you-probably-dont-need-2025</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Thu, 27 Mar 2025 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Hooks You Probably Don't Need]]></title>
            <link>https://reacttraining.com/blog/hooks-you-probably-dont-need</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/hooks-you-probably-dont-need</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Mon, 20 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[isMounted tricks are code-smell]]></title>
            <link>https://reacttraining.com/blog/isMounted-tricks-are-code-smell</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/isMounted-tricks-are-code-smell</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[Intermediate]]></category>
            <pubDate>Wed, 22 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[JavaScript, The React Parts]]></title>
            <link>https://reacttraining.com/blog/javascript-the-react-parts</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/javascript-the-react-parts</guid>
            <category><![CDATA[JavaScript]]></category>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <pubDate>Thu, 14 Feb 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[JSX: The Confusing Parts]]></title>
            <link>https://reacttraining.com/blog/jsx-the-confusing-parts</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/jsx-the-confusing-parts</guid>
            <category><![CDATA[JSX]]></category>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <pubDate>Thu, 14 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Modern Data-Fetching in React]]></title>
            <link>https://reacttraining.com/blog/modern-data-fetching-in-react</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/modern-data-fetching-in-react</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React Router]]></category>
            <category><![CDATA[Tanstack Query]]></category>
            <category><![CDATA[Remix]]></category>
            <category><![CDATA[NextJS]]></category>
            <pubDate>Wed, 04 Sep 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React: "mount" vs "render"?]]></title>
            <link>https://reacttraining.com/blog/mount-vs-render</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/mount-vs-render</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <pubDate>Fri, 31 Jan 2020 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Mutable Refs are Alternative to useState]]></title>
            <link>https://reacttraining.com/blog/mutable-refs-are-alternative-to-usestate</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/mutable-refs-are-alternative-to-usestate</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[State]]></category>
            <pubDate>Wed, 02 Apr 2025 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[One Context, Two Values, With Type Safety]]></title>
            <link>https://reacttraining.com/blog/one-context-two-values-with-type-safety</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/one-context-two-values-with-type-safety</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Context]]></category>
            <category><![CDATA[TypeScript]]></category>
            <pubDate>Thu, 28 Mar 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Portals with Context]]></title>
            <link>https://reacttraining.com/blog/portals-with-context</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/portals-with-context</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <pubDate>Mon, 21 Oct 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The Future of React Router and @reach/router]]></title>
            <link>https://reacttraining.com/blog/reach-react-router-future</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/reach-react-router-future</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React Router]]></category>
            <category><![CDATA[Reach Router]]></category>
            <pubDate>Fri, 17 May 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Announcing Reach UI Tabs]]></title>
            <link>https://reacttraining.com/blog/reach-tabs</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/reach-tabs</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Reach UI]]></category>
            <pubDate>Mon, 18 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Will Be Compiled]]></title>
            <link>https://reacttraining.com/blog/react-19-will-be-compiled</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-19-will-be-compiled</guid>
            <category><![CDATA[React]]></category>
            <pubDate>Fri, 16 Feb 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React and FormData]]></title>
            <link>https://reacttraining.com/blog/react-and-form-data</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-and-form-data</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[JavaScript]]></category>
            <category><![CDATA[Forms]]></category>
            <pubDate>Sun, 08 Sep 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Architecture Tradeoffs: SPA, SSR, or RSC]]></title>
            <link>https://reacttraining.com/blog/react-architecture-spa-ssr-rsc</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-architecture-spa-ssr-rsc</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[SPA]]></category>
            <category><![CDATA[SSR]]></category>
            <category><![CDATA[RSC]]></category>
            <pubDate>Mon, 31 Mar 2025 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Working with React Context in TypeScript]]></title>
            <link>https://reacttraining.com/blog/react-context-with-typescript</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-context-with-typescript</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React context]]></category>
            <category><![CDATA[TypeScript]]></category>
            <pubDate>Thu, 11 Feb 2021 04:09:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Reconciling the useEffect Tree]]></title>
            <link>https://reacttraining.com/blog/react-effect-tree</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-effect-tree</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[useEffect]]></category>
            <pubDate>Fri, 08 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React, Inline Functions, and Performance]]></title>
            <link>https://reacttraining.com/blog/react-inline-functions-and-performance</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-inline-functions-and-performance</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Performance]]></category>
            <category><![CDATA[Patterns]]></category>
            <pubDate>Fri, 06 Oct 2017 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Owner Components]]></title>
            <link>https://reacttraining.com/blog/react-owner-components</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-owner-components</guid>
            <category><![CDATA[React]]></category>
            <pubDate>Wed, 24 Jul 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Router v5.1]]></title>
            <link>https://reacttraining.com/blog/react-router-v5-1</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-router-v5-1</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React Router]]></category>
            <pubDate>Tue, 24 Sep 2019 22:15:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Router v5]]></title>
            <link>https://reacttraining.com/blog/react-router-v5</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-router-v5</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React Router]]></category>
            <pubDate>Wed, 20 Mar 2019 22:15:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[React Router v6 Preview]]></title>
            <link>https://reacttraining.com/blog/react-router-v6-pre</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-router-v6-pre</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[React Router]]></category>
            <pubDate>Mon, 06 Apr 2020 18:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2 of 3 React State: Common Questions?]]></title>
            <link>https://reacttraining.com/blog/react-state-common-questions</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/react-state-common-questions</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <category><![CDATA[State]]></category>
            <pubDate>Mon, 24 May 2021 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Remix vs React Router Framework]]></title>
            <link>https://reacttraining.com/blog/remix-vs-react-router-framework</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/remix-vs-react-router-framework</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Remix]]></category>
            <category><![CDATA[React Router]]></category>
            <pubDate>Sat, 29 Mar 2025 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Setting State On An Unmounted Component]]></title>
            <link>https://reacttraining.com/blog/setting-state-on-unmounted-component</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/setting-state-on-unmounted-component</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[Effects]]></category>
            <category><![CDATA[Intermediate]]></category>
            <pubDate>Tue, 21 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[SPA Lazy Loading Pitfalls]]></title>
            <link>https://reacttraining.com/blog/spa-lazy-loading-pitfalls</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/spa-lazy-loading-pitfalls</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[SPA]]></category>
            <category><![CDATA[React Router]]></category>
            <pubDate>Mon, 09 Sep 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[1 of 3 How is state related to the declarative approach in React?]]></title>
            <link>https://reacttraining.com/blog/state-and-the-declarative-approach</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/state-and-the-declarative-approach</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <category><![CDATA[State]]></category>
            <pubDate>Thu, 13 May 2021 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[State in React is Immutable]]></title>
            <link>https://reacttraining.com/blog/state-in-react-is-immutable</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/state-in-react-is-immutable</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <category><![CDATA[State]]></category>
            <pubDate>Fri, 10 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Understanding SPAs and their shortcomings]]></title>
            <link>https://reacttraining.com/blog/understanding-spas-and-their-shortcomings</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/understanding-spas-and-their-shortcomings</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[SPA]]></category>
            <pubDate>Sun, 30 Mar 2025 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Use useId() Instead Of Hand-Making IDs]]></title>
            <link>https://reacttraining.com/blog/use-useid-instead-of-hand-making-ids</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/use-useid-instead-of-hand-making-ids</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[useId]]></category>
            <pubDate>Fri, 19 Jul 2024 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The useEffect cleanup and the two circumstances it's called.]]></title>
            <link>https://reacttraining.com/blog/useEffect-cleanup</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/useEffect-cleanup</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <category><![CDATA[Effects]]></category>
            <category><![CDATA[Intermediate]]></category>
            <pubDate>Tue, 21 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useEffect(fn, []) is not the new componentDidMount()]]></title>
            <link>https://reacttraining.com/blog/useEffect-is-not-the-new-componentDidMount</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/useEffect-is-not-the-new-componentDidMount</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[hooks]]></category>
            <category><![CDATA[useEffect]]></category>
            <pubDate>Fri, 31 Jan 2020 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Using Hooks in Classes]]></title>
            <link>https://reacttraining.com/blog/using-hooks-in-classes</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/using-hooks-in-classes</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Patterns]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Tue, 12 Mar 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Welcome Back, Ryan!]]></title>
            <link>https://reacttraining.com/blog/welcome-back-ryan</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/welcome-back-ryan</guid>
            <pubDate>Wed, 06 Feb 2019 04:09:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[When do I use functions in a Hooks Dependency Array?]]></title>
            <link>https://reacttraining.com/blog/when-to-use-functions-in-hooks-dependency-array</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/when-to-use-functions-in-hooks-dependency-array</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Mon, 30 Sep 2019 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Where did Hooks come from?]]></title>
            <link>https://reacttraining.com/blog/where-did-hooks-come-from</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/where-did-hooks-come-from</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Beginner]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Mon, 13 Mar 2023 08:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Wins for Hooks]]></title>
            <link>https://reacttraining.com/blog/wins-for-hooks</link>
            <guid isPermaLink="true">https://reacttraining.com/blog/wins-for-hooks</guid>
            <category><![CDATA[React]]></category>
            <category><![CDATA[Hooks]]></category>
            <pubDate>Thu, 28 Mar 2019 08:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>