К основному содержанию
правило

react-router-v7 — правило для Cursor: что делает и как установить

Задаёт стандарты React Router v7 для маршрутов, загрузчиков, мутаций и типизации в файлах TypeScript и конфигах проекта.

Установить в Cursor · Вручную: положить файлы Все способы и платформы ↓
.cursor/rules/react-router-v7.mdc
Открыть на GitHub

Что делает react-router-v7

Правило инструктирует Cursor следовать архитектуре React Router v7 в framework mode. Модули маршрутов служат границей для разметки, функций loader, action, метаданных и ErrorBoundary. Логика получения данных выносится в загрузчики без побочных эффектов, а сетевые вызовы не дублируются внутри useEffect.

Мутации выполняются через action с использованием Form, useFetcher и useSubmit для progressive enhancement. Ошибки валидации возвращаются как типизированные данные действия, а не сырые исключения. Проверки авторизации должны находиться в загрузчиках: проверка прав только в UI-компонентах оставляет закрытые данные в ответе сервера.

Правило отслеживает файлы в папках routes/**/*, app/routes/**/*, src/routes/**/*, конфигурации react-router.config.*, vite.config.* и TypeScript-исходники. При тестировании оно требует изолировать сетевой слой на границе сервисов.

Какие задачи решает

  • избавиться от повторных вызовов fetch внутри useEffect
  • организовать мутации данных через action, Form и useFetcher
  • проверять параметры маршрута и строки поиска на входе в loader
  • изолировать серверные секреты от клиентских обработчиков

Примеры запросов агенту

  • Сделай маршрут app/routes/profile.tsx с загрузчиком данных и обработкой формы через action
  • Добавь валидацию query-параметров в loader и типизируй возвращаемый результат
  • Напиши интеграционный тест для отправки формы с проверкой ошибок валидации

Как установить react-router-v7

Вручную: положить файлы

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

Во frontmatter: description, globs, alwaysApply

По шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules

Вопросы о react-router-v7

Как установить react-router-v7 в Cursor?

Создайте файл .cursor/rules/react-router-v7.mdc в корне проекта и добавьте в него текст правила.

Что делает react-router-v7?

Инструктирует модель генерировать код по соглашениям React Router v7, разделяя загрузку данных, мутации форм, обработку ошибок и типизацию.

Почему правило запрещает проверять права доступа только в компонентах?

Если проверять авторизацию только на этапе отрисовки компонентов, функция loader всё равно выполнится и отдаст закрытые данные клиенту.

Исходный текст

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

Похожие правила IDE

Все правила IDE по теме «Фронтенд и UI» →
winui3 официальный github Правило задаёт рекомендации для WinUI 3 и Windows App SDK: от XAML и потоков до окон и MVVM. Пригодится, чтобы Copilot учитывал особенности настольных приложений Windows. ★ 40 451звёзд репо vue официальный github Правило задаёт Copilot стандарты Vue 3: Composition API, <script setup>, реактивность, Pinia и Vue Router. Пригодится, когда агент пишет компоненты в вашем стиле. ★ 40 451звёзд репо tanstack-start-shadcn-tailwind официальный github Правило задаёт Copilot стек TanStack Start, Shadcn/ui и Tailwind CSS и требует валидировать внешние данные через Zod. ★ 40 451звёзд репо tailwind-v4-vite официальный github Правило помогает подключить Tailwind CSS v4 к проекту на Vite через официальный плагин. Пригодится и для новой установки, и при переходе с v3. ★ 40 451звёзд репо svelte официальный github Направляет GitHub Copilot на стандарты Svelte 5 и SvelteKit 2: руны вместо старых сторов, типизация компонентов и безопасная работа с SSR. ★ 40 451звёзд репо power-bi-custom-visuals-development официальный github Правило для GitHub Copilot, которое подсказывает агенту, как писать кастомные визуалы Power BI на React, D3.js и TypeScript. ★ 40 451звёзд репо

Из того же набора234

Весь набор →
react-typescript-nextjs-nodejs-cursorrules-prompt- Правило для Cursor задаёт стиль кода на React, TypeScript, Next.js 14 и Node.js: функциональные компоненты, RORO, минимум use client. ★ 41 024звёзд репо react-tanstack-router-query Настраивает связку TanStack Router v1 и TanStack Query v5 в React-проектах для загрузки данных в роутере без спиннеров ожидания. ★ 41 024звёзд репо react-tanstack-router-query-cursorrules-prompt-file Правило задаёт схему для React SPA: TanStack Router управляет маршрутами, а TanStack Query — серверными данными и кэшем. Пригодится, когда данные маршрута нужно загрузить до показа страницы. ★ 41 024звёзд репо react-styled-components-cursorrules-prompt-file Правило для Cursor, которое задаёт агенту стиль кода на React со styled-components: функциональные компоненты, тема через ThemeProvider, папка styles. ★ 41 024звёзд репо react-redux-typescript-cursorrules-prompt-file Правило задаёт стиль React-кода с Redux и TypeScript: функциональные компоненты, типизированные хуки и структуру проекта. Подключается к Cursor. ★ 41 024звёзд репо react-query-cursorrules-prompt-file Правило для Cursor, которое задаёт агенту соглашения по React Query: где держать QueryClient, как называть хуки и ключи запросов. ★ 41 024звёзд репо react-nextjs-ui-development-cursorrules-prompt-fil Правило настраивает Cursor на работу с Next.js App Router и JavaScript. Заставляет ИИ сначала писать подробный псевдокод и проверять совместимость с Vercel и Replit. ★ 41 024звёзд репо react-native-expo-router-typescript-windows-cursorrules-prompt-file Правило задаёт практики для React Native-проектов на Expo с TypeScript и Expo Router. Также оно содержит заметки о совместимости NativeWind с Tailwind CSS и работе в PowerShell. ★ 41 024звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой