react-router-data-mode
remix-run/agent-skills · Agent Skill
Создавайте приложения React с использованием режима данных React Router с createBrowserRouter, loaders, actions, Form, useFetcher и ожидаемым или оптимистичным интерфейсом.
Перейти к установке ↓Обзор
| Автор | |
|---|---|
| Репозиторий | remix-run/agent-skills ↗ |
| Папка скилла | react-router-data-mode |
| Звёзды | 134 |
| Форки | 4 |
| Файлы | 8 |
| Лицензия | MIT |
| Обновлён | 18 июня 2026 г. |
| Ссылки | Исходник скилла ↗ · Репозиторий ↗ |
Проверка Mozgi
Что мы нашли в файлах скилла. Подробности — по подписке.
Установка
Скилл — это папка с файлом SKILL.md. Выберите своего агента и скопируйте команды в терминал (macOS, Linux или Git Bash на Windows) в корне проекта.
Скопируйте промпт и вставьте в Claude, Codex или другого ассистента: он сам проверит скилл и подключит его.
Установи мне скилл «react-router-data-mode» с mozgi.io (https://mozgi.io/skills/remix-run-react-router-data-mode/). 1. Скачай архив: https://mozgi.io/skills/remix-run-react-router-data-mode/download Если не скачивается — возьми папку скилла из исходника: https://github.com/remix-run/agent-skills/tree/main/skills/react-router-data-mode 2. Прочитай SKILL.md и остальные файлы. Проверь, что скилл безопасен: нет скрытых команд, отправки данных наружу или скриптов, которые делают не то, что описано. Если что-то подозрительно — остановись и скажи мне. 3. Положи папку «react-router-data-mode» в папку скиллов своего агента: .claude/skills/ для Claude Code, .agents/skills/ для Codex, .cursor/skills/ для Cursor, .gemini/skills/ для Gemini CLI. В проекте — внутри проекта, иначе в домашней папке (~/.claude/skills/ и т. п.). 4. Убедись, что получилось <папка скиллов>/react-router-data-mode/SKILL.md. 5. Коротко расскажи, что умеет этот скилл, и предложи попробовать его на моей задаче. Если какой-то шаг не можешь сделать сам — подскажи, что нажать или ввести.
git clone --depth 1 --branch main https://github.com/remix-run/agent-skills.git /tmp/agent-skills mkdir -p .claude/skills cp -r /tmp/agent-skills/skills/react-router-data-mode .claude/skills/react-router-data-mode
Перезапустите Claude Code — скилл появится в списке, вызвать вручную: /react-router-data-mode. Для всех проектов сразу — папка ~/.claude/skills.
git clone --depth 1 --branch main https://github.com/remix-run/agent-skills.git /tmp/agent-skills mkdir -p .agents/skills cp -r /tmp/agent-skills/skills/react-router-data-mode .agents/skills/react-router-data-mode
Codex ищет скиллы в .agents/skills от текущей папки до корня репозитория; вызвать вручную — /skills или $react-router-data-mode. Для всех проектов — ~/.agents/skills.
git clone --depth 1 --branch main https://github.com/remix-run/agent-skills.git /tmp/agent-skills mkdir -p .cursor/skills cp -r /tmp/agent-skills/skills/react-router-data-mode .cursor/skills/react-router-data-mode
Cursor подхватит скилл при запуске; вызвать вручную — «/» в чате агента. Cursor также читает .claude/skills и .agents/skills. Для всех проектов — ~/.cursor/skills.
git clone --depth 1 --branch main https://github.com/remix-run/agent-skills.git /tmp/agent-skills mkdir -p .gemini/skills cp -r /tmp/agent-skills/skills/react-router-data-mode .gemini/skills/react-router-data-mode
Gemini CLI сам предложит включить скилл, когда задача подходит, — вы подтверждаете. Для всех проектов — ~/.gemini/skills.
Просмотрите SKILL.md и сопутствующие файлы перед установкой. Клик по файлу — предпросмотр.
Содержимое SKILL.md
Оригинальный текст автора · только чтениеReact Router Data Mode
Data mode uses createBrowserRouter and RouterProvider to enable data loading, actions, and pending UI without the framework's Vite plugin. This is ideal for existing React applications that want to add data loading and mutation capabilities.
When to Apply
- Using
createBrowserRouterwith route objects - Loading data with
loaderproperty on routes - Handling mutations with
actionproperty - Navigating with
<Link>,<NavLink>,<Form>,redirect, anduseNavigate - Implementing pending/loading UI states with
useNavigation - Using
useFetcherfor mutations without navigation
References
Load the relevant reference for detailed guidance on the specific API/concept:
| Reference | Use When |
| ---------------------------- | ----------------------------------------- |
| references/routing.md | Configuring routes, nested routes, layout |
| references/route-object.md | Understanding route object properties |
| references/data-loading.md | Loading data with loaders |
| references/actions.md | Handling forms, mutations, validation |
| references/navigation.md | Links, programmatic navigation, redirects |
| references/pending-ui.md | Loading states, optimistic UI |
| references/ssr.md | Server-side rendering with data mode |
Critical Patterns
These are the most important patterns to follow. Load the relevant reference for full details.
Basic Router Setup
import { createBrowserRouter, RouterProvider } from "react-router";
const router = createBrowserRouter([
{
path: "/",
Component: Root,
children: [
{ index: true, Component: Home },
{ path: "about", Component: About },
],
},
]);
ReactDOM.createRoot(root).render(<RouterProvider router={router} />);
Forms & Mutations
Search forms - use <Form method="get">, NOT onSubmit with setSearchParams:
// ✅ Correct
<Form method="get">
<input name="q" />
</Form>
// ❌ Wrong - don't manually handle search params
<form onSubmit={(e) => { e.preventDefault(); setSearchParams(...) }}>
Inline mutations - use useFetcher, NOT <Form> (which causes page navigation):
const fetcher = useFetcher();
const optimistic = fetcher.formData
? fetcher.formData.get("favorite") === "true"
: isFavorite;
<fetcher.Form method="post" action={`/favorites/${id}`}>
<button>{optimistic ? "★" : "☆"}</button>
</fetcher.Form>;
See references/actions.md for complete patterns.
Optimistic UI Pattern
Use fetcher.formData to show expected results immediately:
function FavoriteButton({ itemId, isFavorite }) {
const fetcher = useFetcher();
// Optimistic: use pending form data, fallback to server state
const optimistic = fetcher.formData
? fetcher.formData.get("favorite") === "true"
: isFavorite;
return (
<fetcher.Form method="post" action={`/items/${itemId}/favorite`}>
<input type="hidden" name="favorite" value={String(!optimistic)} />
<button>{optimistic ? "★" : "☆"}</button>
</fetcher.Form>
);
}
See references/pending-ui.md for complete patterns.
Further Documentation
If anything related to React Router is not covered in these references, you can search the official documentation:
https://reactrouter.com/docs
Вопросы и ответы
Что делает скилл react-router-data-mode?
Создавайте приложения React с использованием режима данных React Router с createBrowserRouter, loaders, actions, Form, useFetcher и ожидаемым или оптимистичным интерфейсом.
Как установить react-router-data-mode?
Откройте блок «Установка» на этой странице и выберите своего агента — Claude Code, Codex, Cursor или Gemini CLI: там готовые команды, которые копируют папку скилла в нужное место. Либо скопируйте промпт из вкладки «Через ассистента» — ассистент сам проверит и подключит скилл.
С какими нейросетями работает react-router-data-mode?
Скиллы — это обычные инструкции в Markdown (формат Agent Skills), поэтому react-router-data-mode подходит любому агенту, который читает SKILL.md: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode и другие. Модель загружает инструкции только когда задача подходит под описание скилла.
Скилл react-router-data-mode бесплатный?
Скилл опубликован автором remix-run в открытом доступе под лицензией MIT. Сам скилл ничего не стоит — вы платите только своему провайдеру нейросети за использованные токены.
Безопасно ли устанавливать скиллы?
Скилл — это инструкции, которые агент будет выполнять, поэтому перед установкой прочитайте SKILL.md и сопутствующие файлы. Скрипты из папки скилла запускаются только если их запустит агент — следите за тем, что он делает, и не давайте лишних прав.
Чем скилл отличается от MCP-сервера или плагина?
MCP-сервер и плагин дают модели новые инструменты — код, который выполняется и возвращает результат. Скилл даёт знания и порядок действий: как подходить к задаче, какие шаги делать и как выглядит хороший результат. Ему не нужен сервер или ключ API.