# React Router

Published articles for React Router.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A Reproducible Process for Fixing Bugs

DevFeed: [A Reproducible Process for Fixing Bugs](<https://devfeed.tech/articles/how-to-fix-any-bug-36173.md>)

Original publisher: [Read original article](<https://overreacted.io/how-to-fix-any-bug/>)

Published: 2025-10-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [claude](<https://devfeed.tech/tags/claude.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>)

### AI overview

The article describes debugging a web app where adding a React Router server call caused scrolling to jitter. It argues that reliable reproductions are essential because Claude and human engineers can propose incorrect fixes without a reproducible test.

### Source excerpt

The joys of vibecoding.

## @apollo/client-integration-nextjs Officially Released

DevFeed: [@apollo/client-integration-nextjs Officially Released](<https://devfeed.tech/articles/apollo-client-integration-nextjs-officially-released-23174.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/apollo-client-integration-nextjs-officially-released>)

Author: Lenz Weber-Tronic

Published: 2025-04-07T11:26:16Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [apollo-client](<https://devfeed.tech/topics/apollo-client.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [React](<https://devfeed.tech/topics/react.md>), [Server-side rendering](<https://devfeed.tech/topics/server-side-rendering.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [React Router](<https://devfeed.tech/topics/react-router.md>)

Tags: [apollo](<https://devfeed.tech/tags/apollo.md>), [apollo-client](<https://devfeed.tech/tags/apollo-client.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [nextjs](<https://devfeed.tech/tags/nextjs.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [release](<https://devfeed.tech/tags/release.md>), [ssr](<https://devfeed.tech/tags/ssr.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

Apollo Client's Next.js integration has been released as a stable package after testing and community feedback. The release includes a renamed package, multipart response support, query preloading in RSC, cache rehydration, and compatibility with streaming SSR.

### Source excerpt

Exciting News: Officially Released! After almost two years of testing, gathering user feedback, and refining our approach, we're thrilled to announce that has been released as a stable package with the new name . This milestone marks a significant achievement for the Apollo Client community 🎉 A Brief History of Apollo Client + Next.js When we first started working on this integration, we were concerned about potential race conditions during hydration with how Next.js works.

## React Trends in 2025

DevFeed: [React Trends in 2025](<https://devfeed.tech/articles/react-trends-in-2025-18981.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-trends/>)

Author: Robin Wieruch

Published: 2025-03-18T06:50:46Z

Content type: article

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-trends-2025](<https://devfeed.tech/tags/react-trends-2025.md>), [rpc](<https://devfeed.tech/tags/rpc.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

An overview of React trends in 2025, focusing on the development and expected adoption of React Server Components and React Server Functions. It explains how server-side execution can reduce client-side JavaScript and describes related changes in Next.js, React Router, and other frameworks.

### Source excerpt

React Trends in 2025 which should be on your watchlist. A walkthrough of the state of React ...

## Sunsetting Create React App

DevFeed: [Sunsetting Create React App](<https://devfeed.tech/articles/sunsetting-create-react-app-2985.md>)

Original publisher: [Read original article](<https://react.dev/blog/2025/02/14/sunsetting-create-react-app>)

Author: Matt Carroll and Ricky Hanlon

Published: 2025-02-14T00:00:00Z

Content type: release

Language: en

Sources: [React Blog](<https://devfeed.tech/sources/react-blog.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Vite](<https://devfeed.tech/topics/vite.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [React Router](<https://devfeed.tech/topics/react-router.md>)

Tags: [frameworks](<https://devfeed.tech/tags/frameworks.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [release](<https://devfeed.tech/tags/release.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

React is deprecating Create React App for new applications and recommends migrating existing applications to a framework or build tool such as Vite. The article explains the historical role of Create React App, its production limitations, lack of active maintainers, continued maintenance-mode support, and migration options for client-only single-page applications.

### Source excerpt

Today, we're deprecating Create React App for new apps, and encouraging existing apps to migrate to a framework, or to migrate to a build tool like Vite, Parcel, or RSBuild. We're also providing docs for when a framework isn't a good fit for your project, you want to build your own framework, or you just want to learn how React works by building a React app from scratch.

## React Router 7: Search Params (alias Query Params)

DevFeed: [React Router 7: Search Params (alias Query Params)](<https://devfeed.tech/articles/react-router-7-search-params-alias-query-params-18973.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-search-params/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:54Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-params](<https://devfeed.tech/tags/react-router-params.md>), [react-router-query-params](<https://devfeed.tech/tags/react-router-query-params.md>), [react-router-search-params](<https://devfeed.tech/tags/react-router-search-params.md>), [search](<https://devfeed.tech/tags/search.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial on using Search Params, also called Query Params, with React Router 7. It explains how storing search state in the URL makes filtered lists shareable and introduces the useSearchParams hook as an alternative to React state for this purpose.

### Source excerpt

How to: Search Params in React Router 7. A example on Search Params (also called Query Params) with React Router ...

## React Router 7: Descendant Routes

DevFeed: [React Router 7: Descendant Routes](<https://devfeed.tech/articles/react-router-7-descendant-routes-18967.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-descendant-routes/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:53Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-descendant-routes](<https://devfeed.tech/tags/react-router-descendant-routes.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A React Router 7 tutorial explaining descendant routes. It shows how an umbrella Users component can render an index route for a user list and a dynamic route for user details, so only the matching view is displayed.

### Source excerpt

How to: Descendant Routes in React Router 7. A step by step example on Descendant Routes with React Router ...

## React Router 7: Nested Routes

DevFeed: [React Router 7: Nested Routes](<https://devfeed.tech/articles/react-router-7-nested-routes-18970.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-nested-routes/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:52Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-nested-routes](<https://devfeed.tech/tags/react-router-nested-routes.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [route](<https://devfeed.tech/tags/route.md>), [router](<https://devfeed.tech/tags/router.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

A step-by-step tutorial on using nested routes with React Router 7. It demonstrates tab-like navigation within a user page, explains index and fallback routes, and shows how to map nested paths to Route components.

### Source excerpt

How to: Nested Routes in React Router 7. A step by step example on Nested Routes with React Router ...

## React Router 7 Lazy Loading

DevFeed: [React Router 7 Lazy Loading](<https://devfeed.tech/articles/react-router-7-lazy-loading-18969.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-lazy-loading/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:51Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [lazy-loading](<https://devfeed.tech/tags/lazy-loading.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-lazy-loading](<https://devfeed.tech/tags/react-router-lazy-loading.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains route-level lazy loading with React Router 7. It shows how splitting an application into smaller bundles can load only the code needed for a visited route, and demonstrates React.lazy, React Suspense, and @loadable/component.

### Source excerpt

How to: React Router 7 Lazy Loading: code-splitting at route level helps you lazy-load just the things that are needed by the user, which dramatically improves the performance ...

## React Router 7: Authentication

DevFeed: [React Router 7: Authentication](<https://devfeed.tech/articles/react-router-7-authentication-18966.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-authentication/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:50Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-authentication](<https://devfeed.tech/tags/react-router-authentication.md>), [sign-in](<https://devfeed.tech/tags/sign-in.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial on implementing authentication flows in React Router 7, including sign-in, sign-out, protected routes, redirects, and integration with an authentication API.

### Source excerpt

You will learn how to use authentication in React Router 7 by authenticating a user by login (sign in) and logout (sign out) ...

## React Router 7: Example

DevFeed: [React Router 7: Example](<https://devfeed.tech/articles/react-router-7-example-18968.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-example/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:49Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [components](<https://devfeed.tech/tags/components.md>), [layout](<https://devfeed.tech/tags/layout.md>), [links](<https://devfeed.tech/tags/links.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-example](<https://devfeed.tech/tags/react-router-example.md>), [route](<https://devfeed.tech/tags/route.md>), [router](<https://devfeed.tech/tags/router.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A brief React Router 7 tutorial demonstrates matching routes with links, layout and index routes, no-match fallback handling, and active links. It also points to advanced topics including nested, dynamic, descendant, protected, and authentication routes.

### Source excerpt

A brief React Router 7 example to get you started ...

## React Router 7: Redirect

DevFeed: [React Router 7: Redirect](<https://devfeed.tech/articles/react-router-7-redirect-18972.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-redirect/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:48Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-redirect](<https://devfeed.tech/tags/react-router-redirect.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [route](<https://devfeed.tech/tags/route.md>)

### AI overview

A tutorial on implementing redirects in React Router 7. It covers declarative redirects with the Navigate component, programmatic redirects with the useNavigate Hook, route-level alternatives, and server-side redirects for SEO and performance.

### Source excerpt

How to: Redirect in React Router 7 by using the declarative Navigate component or the programmatic useNavigate Hook ...

## React Router 7: Private Routes (alias Protected Routes)

DevFeed: [React Router 7: Private Routes (alias Protected Routes)](<https://devfeed.tech/articles/react-router-7-private-routes-alias-protected-routes-18971.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router-private-routes/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:47Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-private-routes](<https://devfeed.tech/tags/react-router-private-routes.md>), [react-router-protected-routes](<https://devfeed.tech/tags/react-router-protected-routes.md>), [route](<https://devfeed.tech/tags/route.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial on implementing private or protected routes in React Router 7. It demonstrates guarding pages with authentication, permissions, and roles, including redirecting unauthorized users and handling login and logout state.

### Source excerpt

How to use Private Routes in React Router 7 (alias Protected Routes) by using conditions (e.g. authentication, permissions, roles) to authorize users for guarded pages ...

## React Router 7 Tutorial

DevFeed: [React Router 7 Tutorial](<https://devfeed.tech/articles/react-router-7-tutorial-18974.md>)

Original publisher: [Read original article](<https://www.robinwieruch.de/react-router/>)

Author: Robin Wieruch

Published: 2025-01-06T05:52:46Z

Content type: tutorial

Language: en

Sources: [Robin Wieruch](<https://devfeed.tech/sources/robin-wieruch.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Vite](<https://devfeed.tech/topics/vite.md>)

Tags: [hooks](<https://devfeed.tech/tags/hooks.md>), [layout](<https://devfeed.tech/tags/layout.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-7](<https://devfeed.tech/tags/react-router-7.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [routing](<https://devfeed.tech/tags/routing.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [vite](<https://devfeed.tech/tags/vite.md>)

### AI overview

A step-by-step tutorial for building a React application with React Router 7. It covers project setup with Vite, navigation and links, route matching, layout routes, and related routing patterns.

### Source excerpt

React Router 7 tutorial: setup, hooks, nested routes, dynamic routes, programmatic navigation, active links, layout routes, index routes and more. A step by step React tutorial for beginners ...

## What's new in Apollo Client 3.9

DevFeed: [What's new in Apollo Client 3.9](<https://devfeed.tech/articles/what-s-new-in-apollo-client-3-9-23585.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/whats-new-in-apollo-client-3-9>)

Author: Alessia Bellisario

Published: 2024-01-31T12:27:45Z

Content type: release

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [apollo-client](<https://devfeed.tech/topics/apollo-client.md>), [React](<https://devfeed.tech/topics/react.md>), [React Router](<https://devfeed.tech/topics/react-router.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [apollo-client](<https://devfeed.tech/tags/apollo-client.md>), [cache](<https://devfeed.tech/tags/cache.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

Apollo Client 3.9 introduces Suspense-enabled data fetching for user interactions, query preloading outside React, a new hook for accessing query handlers, memory-use optimizations, multipart subscriptions, and network adapters for Relay and urql. Query preloading is described as an alpha feature that may change before version 3.10.

### Source excerpt

With the release of Apollo Client 3.9, we're excited to announce a host of new features and improvements, including: - Suspense-enabled data fetching in response to user interaction with - Preloading data outside of React with and - Memory usage optimizations - A new hook for accessing and for a given - Multipart subscriptions network adapters for Relay and urql - improvements Let's dive in!

## Using Path Matching in React Router

DevFeed: [Using Path Matching in React Router](<https://devfeed.tech/articles/using-path-matching-in-react-router-37601.md>)

Original publisher: [Read original article](<https://www.taniarascia.com/path-matching-in-react-router/>)

Author: hello@taniarascia.com

Published: 2022-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tania Rascia](<https://devfeed.tech/sources/tania-rascia.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [router](<https://devfeed.tech/tags/router.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This article explores using path matching in React Router to map route patterns to page titles, while noting that passing titles directly through a route wrapper can be a simpler solution. The examples use React Router v5.

### Source excerpt

Recently on a project I was working on I noticed every page was importing in order to display the unique page title, like this: For an app...

## Mixing It Up: Remix Joins Shopify to Push the Web Forward

DevFeed: [Mixing It Up: Remix Joins Shopify to Push the Web Forward](<https://devfeed.tech/articles/mixing-it-up-remix-joins-shopify-to-push-the-web-forward-1547.md>)

Original publisher: [Read original article](<https://shopify.engineering/remix-joins-shopify>)

Author: Dion Almaer

Published: 2022-10-31T14:00:02Z

Content type: news

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Remix](<https://devfeed.tech/topics/remix.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [Web](<https://devfeed.tech/topics/web.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [framework](<https://devfeed.tech/tags/framework.md>), [front-end](<https://devfeed.tech/tags/front-end.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [remix](<https://devfeed.tech/tags/remix.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [web](<https://devfeed.tech/tags/web.md>), [web-platform](<https://devfeed.tech/tags/web-platform.md>)

### AI overview

Shopify announces that the open-source Remix web framework and its team are joining the company. The partnership aims to advance fast, resilient web experiences, improve Shopify's Hydrogen product, and provide Remix with stronger sponsorship and support.

### Source excerpt

At Shopify, the Remix open-source community has a strong sponsor and supporter that will enable the web framework to accelerate its roadmap.

## How to Structure and Organize a React Application

DevFeed: [How to Structure and Organize a React Application](<https://devfeed.tech/articles/how-to-structure-and-organize-a-react-application-37602.md>)

Original publisher: [Read original article](<https://www.taniarascia.com/react-architecture-directory-structure/>)

Author: hello@taniarascia.com

Published: 2021-06-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tania Rascia](<https://devfeed.tech/sources/tania-rascia.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [structure](<https://devfeed.tech/topics/structure.md>), [React Hooks](<https://devfeed.tech/topics/react-hooks.md>), [Redux](<https://devfeed.tech/topics/redux.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [styled-components](<https://devfeed.tech/topics/styled-components.md>), [Jest](<https://devfeed.tech/topics/jest.md>), [testing-library](<https://devfeed.tech/topics/testing-library.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [css](<https://devfeed.tech/tags/css.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jest](<https://devfeed.tech/tags/jest.md>), [react](<https://devfeed.tech/tags/react.md>), [react-hooks](<https://devfeed.tech/tags/react-hooks.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [redux](<https://devfeed.tech/tags/redux.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This tutorial presents an opinionated, feature-focused directory structure for organizing large-scale production React applications. It explains how to separate global shared components from feature-specific code and discusses accompanying choices for Redux, React Router, styling, testing, and authentication.

### Source excerpt

There is no consensus on the right way to organize a React application. React gives you a lot of freedom, but with that freedom comes the...

## React Router v4 redirect decorator

DevFeed: [React Router v4 redirect decorator](<https://devfeed.tech/articles/react-router-v4-redirect-decorator-37339.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/react-router-v4-redirect-decorator/>)

Author: Stanko

Published: 2018-01-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [React Component](<https://devfeed.tech/topics/react-component.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [export](<https://devfeed.tech/tags/export.md>), [import](<https://devfeed.tech/tags/import.md>), [react](<https://devfeed.tech/tags/react.md>), [react-component](<https://devfeed.tech/tags/react-component.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [return](<https://devfeed.tech/tags/return.md>), [router](<https://devfeed.tech/tags/router.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

This tutorial explains how React Router v4 handles redirects through rendered components and presents a higher-order decorator that exposes a redirectTo method. The decorator can either replace the current URL or push a new history entry.

### Source excerpt

React Router switched to component based routing starting with the version 4. Redirects are now done by rendering a Redirect component, like this:Please note that you can use included withRouter decorator but it can cause update blocking and introduce side effects. This is small subset of it. <Redirect to='/redirect-url-here' /> What I usually do is to keep redirectTo property in component's state. To redirect, I set it to the URL I want to redirect to, and render Redirect at the start of the render method: render() { const { redirectTo } = this.state; if (redirectTo) { return <Redirect push to={ redirectTo } />; } return ( <YourComponentHere /> ); } This approach works well, but I got tired of repeating the same code over and over again. So I pulled the functionality to a decorator (higher order component if you prefer). Redirect decorator # I did exactly what I described above, and exposed redirectTo method to a composed component. import React, { Component } from 'react'; import { Redirect } from 'react-router-dom'; const withRedirect = ComposedComponent => class RedirectDecorator extends Component { state = { push: false, redirectUrl: null, } componentDidUpdate(prevProps, prevState) { const { redirectUrl, } = this.state; // If component is rendered on redirect page as well // (i.e. header or footer) it would cause redirect-loop // as "<Redirect />" is being rendered every time. // So we are resetting the state after redirect if (!prevState.redirectUrl && redirectUrl) { this.setState({ push: false, redirectUrl: null, }); } } redirectTo = (redirectUrl, push = false) => { this.setState({ push, redirectUrl, }); } render() { const { push, redirectUrl, } = this.state; if (redirectUrl) { return <Redirect push={ push } to={ redirectUrl } />; } return ( <ComposedComponent { ...this.props } redirectTo={ this.redirectTo } /> ); } }; export default withRedirect; Usage # Import newly added decorator and apply it to your component. It will inject redirectTo to it's props, and

## Tutorial: GraphQL Input Types and Custom Resolvers

DevFeed: [Tutorial: GraphQL Input Types and Custom Resolvers](<https://devfeed.tech/articles/tutorial-graphql-input-types-and-custom-resolvers-23399.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/input-types-and-client-caching>)

Author: Evans Hauser

Published: 2017-06-06T00:15:00Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [React](<https://devfeed.tech/topics/react.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>)

Tags: [apollo](<https://devfeed.tech/tags/apollo.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [latency](<https://devfeed.tech/tags/latency.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [mutation](<https://devfeed.tech/tags/mutation.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [react-router-tutorial](<https://devfeed.tech/tags/react-router-tutorial.md>), [resolvers](<https://devfeed.tech/tags/resolvers.md>), [routing](<https://devfeed.tech/tags/routing.md>), [schema](<https://devfeed.tech/tags/schema.md>), [server](<https://devfeed.tech/tags/server.md>), [state](<https://devfeed.tech/tags/state.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

Part 5 of a full-stack GraphQL and React tutorial explains how to build a channel detail view for a messaging application. It covers field arguments in queries, Apollo's normalized cache, GraphQL input types, custom resolvers, and mutations for posting messages.

### Source excerpt

This is part 5 of our full-stack GraphQL + React Tutorial that guides you through creating a messaging application. Each part is self-contained and introduces new key concepts, which means you don't have to do all the other parts before doing this one.

## The Diverse React Navigation Ecosystem

DevFeed: [The Diverse React Navigation Ecosystem](<https://devfeed.tech/articles/the-diverse-react-navigation-ecosystem-21869.md>)

Original publisher: [Read original article](<https://reactjsnews.com/the-diverse-react-navigation-ecosystem>)

Author: Zach Silveira

Published: 2017-03-06T17:00:00Z

Content type: article

Language: en

Sources: [ReactJS News](<https://devfeed.tech/sources/reactjs-news.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [Redux](<https://devfeed.tech/topics/redux.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [community](<https://devfeed.tech/tags/community.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [native](<https://devfeed.tech/tags/native.md>), [react](<https://devfeed.tech/tags/react.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [redux](<https://devfeed.tech/tags/redux.md>), [router](<https://devfeed.tech/tags/router.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

The article compares navigation in React and React Native. It presents React Router as a well-supported incumbent, while describing React Native navigation as rapidly changing, with several official navigators and community projects addressing common patterns such as sidebars, tab bars, and headers.

### Source excerpt

The routing ecosystem around React and React Native is quite different. One is characterized by a strong incumbent, and the other is plagued by rapid change. React JS No question about it, React Router (ReactTraining/react-router) is king here. They have the benefit of several years of active development, along with an active community submitting PR's, fixes, etc. Supplement that with myriad tutorials and how-to's and you end up with a well-supported, stable product. To be fair, React Router has suffered some major API upsets, and is nearly the poster-child for javascript fatigue but the maintainers have declared their lasting support for a few specific versions, which means you can plop down with V3 and be good to go for the next 12 to 24 months. React Native Ok, this is where things start to get really, really crazy. The most important thing to keep in mind is that the React Native team has produced three navigation helpers: NavigatorIOS, Navigator, and NavigatorExperimental. NavigatorIOS was quickly deprecated, as it was supported only by (you guessed it) IOS. Navigator is the currently endorsed solution for navigation, at least if you are following the official docs. However, its about to be upset by- NavigationExperimental. This is an updated navigator that has learned some lessons from Navigator, and has some solid integration with Redux. 'Navigator' is (or was!) sleighted to be deprecated in favor of NavigationExperimental at some point. Already you have three 'official' navigators supported by the React Native team. The big issue with all three of these is that they are somewhat lightweight and don't include a lot of common navigation situations out of the box, like sidebars, tab bars, headers, etc. To solve that, the community has introduced... React Native Router Flux (aksonov/react-native-router-flux). My personal favorite, this is router is based upon NavigationExperimental. You can imagine that the authors looked at NavigationExperimental, realized that e

## Deploying React (Router) app to the subfolder on server

DevFeed: [Deploying React (Router) app to the subfolder on server](<https://devfeed.tech/articles/deploying-react-router-app-to-the-subfolder-on-server-37338.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/react-router-subfolder-on-server/>)

Author: Stanko

Published: 2017-01-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [browser](<https://devfeed.tech/topics/browser.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [htaccess](<https://devfeed.tech/tags/htaccess.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [server](<https://devfeed.tech/tags/server.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A tutorial on deploying a React Router application in a server subfolder. It presents HashRouter for simpler deployments, BrowserRouter with a basename for preserving browser history, and server fallback configuration for routes that would otherwise return 404 errors.

### Source excerpt

May 2018 - Updated to match React Router v4 API. September 2019 - Updated to match React Router v5 API, added React Create App part. If you ever had to deploy React Router app to the subfolder on the server, you know what the problem is. Routes will get messed up once you upload it to the server. Here are two solutions I use in these cases. Easy way, just use HashRouter # The easiest way to achieve this is to use HashRouter instead of BrowserRouter. import { HashRouter, Route } from 'react-router-dom'; // Then in render <HashRouter> <Route path='/' component={ Home } exact /> <Route path='/about' component={ About } exact /> {/*...*/} </HashRouter> This is the best approach if your subfolder name changes (for example, if folder name is a build version). But you'll have /#/ included in the every URL. If this bothers you, check the second solution. Example of the routes http://yourserver.com/path/to/subfolder/ http://yourserver.com/path/to/subfolder/#/about http://yourserver.com/path/to/subfolder/#/search Hard way, setting base path by hand # If you want to keep browser history implementation, you'll need to change few things. First, we need to update our routes to include full absolute path to the subfolder. Using React Router's basename # As Davis Cabral pointed out in the comments, instead of manually adding publicPath to all routes, it can be achieved by using React Router's basename prop. import { BrowserRouter, Route } from 'react-router-dom'; // Then in render <BrowserRouter basename='/path/to/subfolder/'> <Route path='/' component={ Home } exact /> <Route path='/about' component={ About } exact /> {/*...*/} </BrowserRouter> Doing it by the hand # I define my routes something like this: const publicPath = '/path/to/subfolder/'; export const routeCodes = { HOME: publicPath, SEARCH: `${ publicPath }search`, ABOUT: `${ publicPath }about`, }; // Then you can use them like this // <Route exact path={ routeCodes.ABOUT } component={ About } /> Setting up .htaccess fil

## React and Redux, Webpack 2 boilerplate

DevFeed: [React and Redux, Webpack 2 boilerplate](<https://devfeed.tech/articles/react-and-redux-webpack-2-boilerplate-37371.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/webpack-2-react-redux/>)

Author: Stanko

Published: 2016-11-24T00:00:00Z

Content type: article

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Boilerplate](<https://devfeed.tech/topics/boilerplate.md>), [React](<https://devfeed.tech/topics/react.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Redux](<https://devfeed.tech/topics/redux.md>), [Babel](<https://devfeed.tech/topics/babel.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [Sass](<https://devfeed.tech/topics/sass.md>), [file](<https://devfeed.tech/topics/file.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [babel](<https://devfeed.tech/tags/babel.md>), [boilerplate](<https://devfeed.tech/tags/boilerplate.md>), [dev-tools](<https://devfeed.tech/tags/dev-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [npm](<https://devfeed.tech/tags/npm.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [redux](<https://devfeed.tech/tags/redux.md>), [sass](<https://devfeed.tech/tags/sass.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

The article introduces a minimal React application boilerplate built with Redux and Webpack 2. It explains that the author extracted the boilerplate from a pet project after finding Webpack 1.x difficult to configure, and lists implemented, planned, and possible future features.

### Source excerpt

Currently, I'm working on a relatively small pet project. While setting it up, I decided to extract a webpack boilerplate from it. As whole JS community is moving really fast, I found very hard to set everything up using Webpack 1.x. One package would ask to update the other, that would break the third one, then that one... and so on. Luckily, I was able to set everything up using Webpack 2. It is still in beta, but I had no problems so far. You can find the boilerplate on GitHub. Implemented Features # React React router Redux Redux Thunk Immutable reducer data Webpack 2 (development and production config) Hot Module Replacement Babel - static props, decorators SASS with autoprefixing Webpack dashboard Linting Included es6-promise and isomorphic-fetch File imports relative to the app root Planned features # Redux Dev Tools Generating icon font from SVGs Preview production build Git hooks - lint before commit (or push) Future features # Universal may be added at some point. Universal rendering Server async data About # This boilerplate is a complete, but minimal React application. It includes reducers (redux), actions (sync and async), routing, SASS... My goal was to be ready immediately after cloning the repo (and running npm i). My plan is to reuse this as much as possible. It will updated so make sure you follow the documentation on GitHub.

## Routing in React Native with Jake Murzy

DevFeed: [Routing in React Native with Jake Murzy](<https://devfeed.tech/articles/routing-in-react-native-with-jake-murzy-21868.md>)

Original publisher: [Read original article](<https://reactjsnews.com/routing-in-react-native-with-jake-murzy>)

Author: Zach Silveira

Published: 2016-09-28T17:00:00Z

Content type: opinion

Language: en

Sources: [ReactJS News](<https://devfeed.tech/sources/reactjs-news.md>)

Topics: [React Native](<https://devfeed.tech/topics/react-native.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [React Router](<https://devfeed.tech/topics/react-router.md>), [React](<https://devfeed.tech/topics/react.md>), [Library](<https://devfeed.tech/topics/library.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [js](<https://devfeed.tech/tags/js.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [react](<https://devfeed.tech/tags/react.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

An interview with Jake Murzy about a new React Native navigation library created to provide a routing approach similar to React Router. The article describes React Native's unsettled routing ecosystem and the author's frustration with existing solutions, including deprecated, unstable, incomplete, or low-level options.

### Source excerpt

Jake Murzy has been hard at work creating a new navigational library for React Native over the last couple of months. While React JS has the benefit of the highly-regarded React Router, such a comprehensive routing solution doesn't exist yet in the React Native community. In fact, React Native's routing landscape has been in constant upheaval for the last year. The library itself has official three 'navigators' for handling decision making on which components to show the user, including 'NavigatorIOS', 'Navigator', and - more recently - 'NavigatorExperimental'. The open source community likewise has the packages 'React Native Router Flux', 'React Native Router Native', and 'React Native Redux Router', which of which are in various states of completion, or, more commonly, disrepair. Jake Murzy has been hard at work creating a new navigational library for React Native over the last couple of months. While React JS has the benefit of the highly-regarded React Router, such a comprehensive routing solution doesn't exist yet in the React Native community. In fact, React Native's routing landscape has been in constant upheaval for the last year. The library itself has official three 'navigators' for handling decision making on which components to show the user, including 'NavigatorIOS', 'Navigator', and - more recently - 'NavigatorExperimental'. The open source community likewise has the packages 'React Native Router Flux', 'React Native Router Native', and 'React Native Redux Router', which of which are in various states of completion, or, more commonly, disrepair. React Router Native appears to focus on matching the API of the immensely popular React Router package, even going as far as introducing the concept of a URL into React Native, which bucks the notion that only web applications need or deserve a URL. Today Jake is going to share some of his thoughts about his new library. Q: Hi Jake! The React Native library contains several navigation solutions and the surround

## React Router & Webpack in Production

DevFeed: [React Router & Webpack in Production](<https://devfeed.tech/articles/react-router-webpack-in-production-21870.md>)

Original publisher: [Read original article](<https://reactjsnews.com/webpack-in-production>)

Author: Zach Silveira

Published: 2016-03-13T04:00:09Z

Content type: article

Language: en

Sources: [ReactJS News](<https://devfeed.tech/sources/reactjs-news.md>)

Topics: [React Router](<https://devfeed.tech/topics/react-router.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code-splitting](<https://devfeed.tech/tags/code-splitting.md>), [polyfill](<https://devfeed.tech/tags/polyfill.md>), [react](<https://devfeed.tech/tags/react.md>), [react-router](<https://devfeed.tech/tags/react-router.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

A practical account of using React Router and Webpack in production for a large application with many routes and code splits. It explains the client-side setup, route organization, asynchronous data loading, server rendering, and differences between server and client builds.

### Source excerpt

I've been working on a pretty large react-router codebase at work. Currently it has around 50~ code splits, which as you can imagine, is a lot of routes. This is going to be a post on the things I've learned throughout building out my development / production config and how we are using webpack in production. ###Initial Setup Before I really dive into how my webpack config is setup and the problems I've found, I'll quickly go over how this app is setup. Currently, there's one entry point and it looks like this: import React from 'react' import { render } from 'react-dom' import { match, Router, browserHistory } from 'react-router' import AsyncProps from 'async-props' import routes from '../routes/index' /* globals document, window */ const { pathname, search, hash } = window.location const location = `${pathname}${search}${hash}` match({ routes, location }, () => { render( <Router render={props => <AsyncProps {...props}/>} routes={routes} history={browserHistory} />, document.getElementById('app') ) }) It looks like a standard react-router setup, except a couple things are different. For one, there's way too many routes to have them all in this file, so we are importing the main route object into this file. Second, we are using match on the client side. Without matching first, the client side would try to render before the splits were downloaded causing an error. You can read a little more about match on the client here. Next, we are using Ryan Florence's awesome async-props library for loading data into components. It allows me to load data from an api before the server renders components. It will pass the data down to the client for the client-side render, and then data will load as you navigate to new pages automatically. ###Routes Our main routes file looks like this: export default { component: 'div', path: '/', indexRoute: require('./index'), childRoutes: [ require('./login'), require('./account'), ... ] } There's a lot more require's in our app of course. And