Skip to main content
rule

react-router-v7 — Cursor rule: what it does, how to install

Enforces React Router v7 conventions for route modules, deterministic loaders, action mutations, and typed routing in Cursor.

Install into Cursor · Manually: put the files in place All methods and platforms ↓
.cursor/rules/react-router-v7.mdc
Open on GitHub

What react-router-v7 does

This rule guides Cursor when generating code for React Router v7 projects in framework mode. Route modules serve as boundaries for UI, loaders, actions, and ErrorBoundary exports. The assistant avoids placing data fetching inside useEffect, keeping loaders deterministic and free of side effects.

Data mutations rely on action handlers paired with Form, useFetcher, and useSubmit for progressive enhancement. Validation failures return typed action data instead of unhandled exceptions. Checking authorization strictly inside UI components is unsafe: access checks belong directly in loaders before protected data reaches the client.

Target paths cover app/routes/**/*, src/routes/**/*, routes/**/*, alongside react-router.config.*, vite.config.*, and all TypeScript files. For testing, the rule requires mocking network requests at the service layer and writing integration checks for form submissions.

What it helps with

  • eliminate redundant data fetches inside useEffect
  • implement mutations with action, Form, and useFetcher
  • validate route parameters and query strings at loader boundaries
  • prevent server secrets from leaking into client actions

Example prompts for the agent

  • Create app/routes/settings.tsx with a typed loader and an action for form updates
  • Refactor this component to use useFetcher and progressive enhancement
  • Add route-level validation for query parameters in the loader

How to install react-router-v7

Manually: put the files in place

.cursor/rules/react-router-v7.mdc

Frontmatter: description, globs, alwaysApply

Step by step, with commands for each platform: Cursor rules: .mdc files, four modes and what replaced .cursorrules

Questions about react-router-v7

How to install react-router-v7 in Cursor?

Create the file .cursor/rules/react-router-v7.mdc in your repository root and paste the rule text into it.

What does react-router-v7 do?

It configures Cursor to write code following React Router v7 patterns, focusing on data loading, actions, typed parameters, and error boundaries.

Why does the rule restrict authentication checks to loaders?

Checking auth only in React components lets loaders fetch and expose protected records to the browser. Access checks must run before rendering begins.

Source text

react-router-v7.mdc · CC0-1.0
---
description: React Router v7 rules for framework mode, data routers, loaders, actions, route modules, and progressive enhancement
globs: ["app/routes/**/*", "src/routes/**/*", "routes/**/*", "react-router.config.*", "vite.config.*", "**/*.tsx", "**/*.ts"]
alwaysApply: false
---

# React Router v7 Rules

## Route Modules

- Use route modules as the boundary for route UI, loader data, actions, metadata, and error boundaries.
- Keep route modules small; move shared UI to components and reusable data access to services.
- Prefer file-based routing in framework mode when the project is configured for it.
- Use nested routes for shared layouts and progressive disclosure.
- Export route-specific `ErrorBoundary` components for recoverable route failures.

## Data Loading

- Use loaders for route data that should be available before render.
- Keep loaders deterministic and side-effect free.
- Validate params and search params at the loader boundary.
- Return typed data and consume it through route hooks rather than duplicating fetch logic in components.
- Use deferred or streaming patterns only when they improve perceived performance.

## Mutations

- Use actions for route mutations and form submissions.
- Prefer `Form`, `useFetcher`, and `useSubmit` for progressive enhancement.
- Revalidate affected loader data after mutations.
- Handle validation errors as typed action data instead of generic exceptions.
- Keep server-only secrets and privileged operations out of client actions.

## Navigation and State

- Store shareable state in URL params or search params.
- Keep ephemeral UI state local to components.
- Use pending navigation state to show optimistic or loading UI.
- Avoid global state for data that belongs to route loaders.

## TypeScript and Testing

- Type loader and action return values.
- Add tests for route loaders, actions, validation failures, and error boundaries.
- Use integration tests for critical form and navigation flows.
- Mock network and persistence at the route-service boundary.

## Common Mistakes

- Do not duplicate loader fetches in `useEffect`.
- Do not mutate data in loaders.
- Do not hide route errors behind a single generic app-level catch-all.
- Do not put auth checks only in components when loader data is protected.

© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules

Similar IDE rules

All IDE rules for Frontend and UI →

From the same set210

react-typescript-nextjs-nodejs-cursorrules-prompt- A Cursor rule that pins down React, TypeScript, Next.js 14 and Node.js conventions: functional components, RORO, minimal use client. ★ 41,024repo stars react-tanstack-router-query Guides AI assistants on structuring React SPAs with TanStack Router v1 and TanStack Query v5 to fetch data in loaders before rendering. ★ 41,024repo stars react-tanstack-router-query-cursorrules-prompt-file This rule describes a React SPA setup where TanStack Router handles navigation and TanStack Query stores server data. Use it to fetch route data before rendering a page. ★ 41,024repo stars react-styled-components-cursorrules-prompt-file A Cursor rule that tells the agent how to write React code with styled-components: functional components, theming through ThemeProvider, a fixed folder layout. ★ 41,024repo stars react-redux-typescript-cursorrules-prompt-file This Cursor rule guides React work with Redux and TypeScript, covering component style, state structure, and typed hooks. Use it in a matching project. ★ 41,024repo stars react-query-cursorrules-prompt-file A Cursor rule that tells the agent how to write React Query code: where QueryClient lives, how hooks and query keys are named. ★ 41,024repo stars react-nextjs-ui-development-cursorrules-prompt-fil Configures Cursor for React and Next.js App Router development. Forces the agent to outline pseudocode first and maintain dual Vercel and Replit support. ★ 41,024repo stars react-native-expo-router-typescript-windows-cursorrules-prompt-file This rule guides React Native projects using Expo, TypeScript, and Expo Router. It also covers NativeWind and Tailwind CSS versions, Babel configuration, and Windows terminal commands. ★ 41,024repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor