56,966 blogs · [ { "id": "01a0b848-4dfe-7002-8998-ccfd04ee0dc8", "title": "Mutable Refs are Alternative to useState", "url": "https://reacttraining.com/blog/mutable-refs-are-alternative-to-usestate", "published_at": "2025-04-02T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd07e8c0e5", "title": "React Architecture Tradeoffs: SPA, SSR, or RSC", "url": "https://reacttraining.com/blog/react-architecture-spa-ssr-rsc", "published_at": "2025-03-31T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd108f6f9b", "title": "Understanding SPAs and their shortcomings", "url": "https://reacttraining.com/blog/understanding-spas-and-their-shortcomings", "published_at": "2025-03-30T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0db4bf4b", "title": "Remix vs React Router Framework", "url": "https://reacttraining.com/blog/remix-vs-react-router-framework", "published_at": "2025-03-29T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639cb66b33", "title": "Hooks You Probably Don't Need, 2025 edition", "url": "https://reacttraining.com/blog/hooks-you-probably-dont-need-2025", "published_at": "2025-03-27T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0fab0818", "title": "SPA Lazy Loading Pitfalls", "url": "https://reacttraining.com/blog/spa-lazy-loading-pitfalls", "published_at": "2024-09-09T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd076c8b8e", "title": "React and FormData", "url": "https://reacttraining.com/blog/react-and-form-data", "published_at": "2024-09-08T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd042e9c8c", "title": "Modern Data-Fetching in React", "url": "https://reacttraining.com/blog/modern-data-fetching-in-react", "published_at": "2024-09-04T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0ab6a308", "title": "React Owner Components", "url": "https://reacttraining.com/blog/react-owner-components", "published_at": "2024-07-24T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd114850e0", "title": "Use useId() Instead Of Hand-Making IDs", "url": "https://reacttraining.com/blog/use-useid-instead-of-hand-making-ids", "published_at": "2024-07-19T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0560322c", "title": "One Context, Two Values, With Type Safety", "url": "https://reacttraining.com/blog/one-context-two-values-with-type-safety", "published_at": "2024-03-28T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd067f81e1", "title": "React Will Be Compiled", "url": "https://reacttraining.com/blog/react-19-will-be-compiled", "published_at": "2024-02-16T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639e12e775", "title": "isMounted tricks are code-smell", "url": "https://reacttraining.com/blog/isMounted-tricks-are-code-smell", "published_at": "2023-03-22T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0eb46ce1", "title": "Setting State On An Unmounted Component", "url": "https://reacttraining.com/blog/setting-state-on-unmounted-component", "published_at": "2023-03-21T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd1208b5fc", "title": "The useEffect cleanup and the two circumstances it's called.", "url": "https://reacttraining.com/blog/useEffect-cleanup", "published_at": "2023-03-21T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639d364e09", "title": "Hooks You Probably Don't Need", "url": "https://reacttraining.com/blog/hooks-you-probably-dont-need", "published_at": "2023-03-20T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd156866ed", "title": "Where did Hooks come from?", "url": "https://reacttraining.com/blog/where-did-hooks-come-from", "published_at": "2023-03-13T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0fe0e0b4", "title": "State in React is Immutable", "url": "https://reacttraining.com/blog/state-in-react-is-immutable", "published_at": "2023-03-10T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639ae15867", "title": "3 of 3 Derived State", "url": "https://reacttraining.com/blog/derived-state", "published_at": "2021-05-26T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0ce0058c", "title": "2 of 3 React State: Common Questions?", "url": "https://reacttraining.com/blog/react-state-common-questions", "published_at": "2021-05-24T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0fddc09e", "title": "1 of 3 How is state related to the declarative approach in React?", "url": "https://reacttraining.com/blog/state-and-the-declarative-approach", "published_at": "2021-05-13T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd08b057d4", "title": "Working with React Context in TypeScript", "url": "https://reacttraining.com/blog/react-context-with-typescript", "published_at": "2021-02-11T04:09:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0cdbfc25", "title": "React Router v6 Preview", "url": "https://reacttraining.com/blog/react-router-v6-pre", "published_at": "2020-04-06T18:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd048f642d", "title": "React: \"mount\" vs \"render\"?", "url": "https://reacttraining.com/blog/mount-vs-render", "published_at": "2020-01-31T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd12fff71a", "title": "useEffect(fn, []) is not the new componentDidMount()", "url": "https://reacttraining.com/blog/useEffect-is-not-the-new-componentDidMount", "published_at": "2020-01-31T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd05cac207", "title": "Portals with Context", "url": "https://reacttraining.com/blog/portals-with-context", "published_at": "2019-10-21T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd149ee1e6", "title": "When do I use functions in a Hooks Dependency Array?", "url": "https://reacttraining.com/blog/when-to-use-functions-in-hooks-dependency-array", "published_at": "2019-09-30T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0bb09f26", "title": "React Router v5.1", "url": "https://reacttraining.com/blog/react-router-v5-1", "published_at": "2019-09-24T22:15:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd05cb633b", "title": "The Future of React Router and @reach/router", "url": "https://reacttraining.com/blog/reach-react-router-future", "published_at": "2019-05-17T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd1592433b", "title": "Wins for Hooks", "url": "https://reacttraining.com/blog/wins-for-hooks", "published_at": "2019-03-28T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639acce7b8", "title": "Blog Claps, and lessons on Hooks", "url": "https://reacttraining.com/blog/blog-claps-and-lessons-on-hooks", "published_at": "2019-03-21T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd0c5d93c5", "title": "React Router v5", "url": "https://reacttraining.com/blog/react-router-v5", "published_at": "2019-03-20T22:15:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd060bf973", "title": "Announcing Reach UI Tabs", "url": "https://reacttraining.com/blog/reach-tabs", "published_at": "2019-03-18T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639bb67c86", "title": "Flow Control in React", "url": "https://reacttraining.com/blog/flow-control-in-react", "published_at": "2019-03-14T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639f1d22db", "title": "JSX: The Confusing Parts", "url": "https://reacttraining.com/blog/jsx-the-confusing-parts", "published_at": "2019-03-14T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd13178090", "title": "Using Hooks in Classes", "url": "https://reacttraining.com/blog/using-hooks-in-classes", "published_at": "2019-03-12T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd092a36ee", "title": "Reconciling the useEffect Tree", "url": "https://reacttraining.com/blog/react-effect-tree", "published_at": "2019-03-08T08:00:00+00:00" }, { "id": "01a0b848-4dfd-73a1-9957-62639eb37e73", "title": "JavaScript, The React Parts", "url": "https://reacttraining.com/blog/javascript-the-react-parts", "published_at": "2019-02-14T08:00:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd14048262", "title": "Welcome Back, Ryan!", "url": "https://reacttraining.com/blog/welcome-back-ryan", "published_at": "2019-02-06T04:09:00+00:00" }, { "id": "01a0b848-4dfe-7002-8998-ccfd09c37b8c", "title": "React, Inline Functions, and Performance", "url": "https://reacttraining.com/blog/react-inline-functions-and-performance", "published_at": "2017-10-06T08:00:00+00:00" } ] posts Claim your blog
Back to reacttraining.com
Blog · corpus.blog/blogs/reacttraining.com/posts

reacttraining.com

reacttraining.com

2025

2024

2023

2021

2020

2019

2017