Промпты/React-компонент по паттерну Container/Presentation

React-компонент по паттерну Container/Presentation

6 сентября 2026

Разделяет логику и отображение: хук с состоянием, «глупый» презентационный компонент, типы и история Storybook.

Описание

РазработкаБесплатно

Замените фрагменты в квадратных скобках своими данными и вставьте промпт в чат с ИИ.

  • React
  • архитектура
  • Storybook
Название
React-компонент по паттерну Container/Presentation
Категория
Разработка
Источник
awesome-copilot — react-container-presentation-component skill · MIT
Где работает
ChatGPT, Claude и другие ИИ-ассистенты
Объём
24 строки · 174 слова · 1 273 символа
Переменные

Значения сразу появятся в превью, коде и при копировании.

Как использовать
  1. 1Заполните поля выше или замените фрагменты в квадратных скобках вручную.
  2. 2Скопируйте промпт — он попадёт в буфер обмена целиком.
  3. 3Вставьте его в чат с ИИ: ChatGPT, Claude или любой другой ассистент.
  4. 4Уточняйте ответ короткими репликами, не переписывая промпт заново.

Что внутри

Создай React-компонент по паттерну Container/Presentation.

Имя компонента (PascalCase): [ИМЯ КОМПОНЕНТА]
Тип: [ui ИЛИ features]
Что делает: [ОПИСАНИЕ]
Стили: [CSS Modules / SCSS / Tailwind]

Если чего-то из этого не хватает — сначала спроси.

Правила классификации:
- ui — только отображение: получает данные и колбэки через пропсы, без состояния приложения, запросов и побочных эффектов;
- features — есть состояние, запросы, контекст или стор, бизнес-логика.
Даже если я указал ui, но компоненту нужна логика, — предложи сделать его features или вынести логику в родителя.

Порядок:
1. Проверь, нет ли уже компонента с таким именем в src/components/ui или src/components/features. Если есть — не перезаписывай, спроси меня.
2. Создай файлы:
   - ui: index.tsx, стили, index.stories.tsx;
   - features: index.tsx (контейнер), useИмя.tsx (хук с состоянием и эффектами), presentation.tsx (отображение), types.ts, стили и presentation.stories.tsx.
3. Презентационный компонент не импортирует хуки данных и стор — всё через пропсы.
4. Истории Storybook: основное состояние, загрузка, пусто, ошибка.
5. Запусти сборку и линтер, исправь ошибки в новых файлах.

Отчёт: список файлов, пример использования, почему выбран ui или features, где живут состояние, эффекты и отрисовка.
```text
Создай React-компонент по паттерну Container/Presentation.

Имя компонента (PascalCase): [ИМЯ КОМПОНЕНТА]
Тип: [ui ИЛИ features]
Что делает: [ОПИСАНИЕ]
Стили: [CSS Modules / SCSS / Tailwind]

Если чего-то из этого не хватает — сначала спроси.

Правила классификации:
- ui — только отображение: получает данные и колбэки через пропсы, без состояния приложения, запросов и побочных эффектов;
- features — есть состояние, запросы, контекст или стор, бизнес-логика.
Даже если я указал ui, но компоненту нужна логика, — предложи сделать его features или вынести логику в родителя.

Порядок:
1. Проверь, нет ли уже компонента с таким именем в src/components/ui или src/components/features. Если есть — не перезаписывай, спроси меня.
2. Создай файлы:
   - ui: index.tsx, стили, index.stories.tsx;
   - features: index.tsx (контейнер), useИмя.tsx (хук с состоянием и эффектами), presentation.tsx (отображение), types.ts, стили и presentation.stories.tsx.
3. Презентационный компонент не импортирует хуки данных и стор — всё через пропсы.
4. Истории Storybook: основное состояние, загрузка, пусто, ошибка.
5. Запусти сборку и линтер, исправь ошибки в новых файлах.

Отчёт: список файлов, пример использования, почему выбран ui или features, где живут состояние, эффекты и отрисовка.
```
{
  "messages": [
    {
      "role": "user",
      "content": "Создай React-компонент по паттерну Container/Presentation.\n\nИмя компонента (PascalCase): [ИМЯ КОМПОНЕНТА]\nТип: [ui ИЛИ features]\nЧто делает: [ОПИСАНИЕ]\nСтили: [CSS Modules / SCSS / Tailwind]\n\nЕсли чего-то из этого не хватает — сначала спроси.\n\nПравила классификации:\n- ui — только отображение: получает данные и колбэки через пропсы, без состояния приложения, запросов и побочных эффектов;\n- features — есть состояние, запросы, контекст или стор, бизнес-логика.\nДаже если я указал ui, но компоненту нужна логика, — предложи сделать его features или вынести логику в родителя.\n\nПорядок:\n1. Проверь, нет ли уже компонента с таким именем в src/components/ui или src/components/features. Если есть — не перезаписывай, спроси меня.\n2. Создай файлы:\n   - ui: index.tsx, стили, index.stories.tsx;\n   - features: index.tsx (контейнер), useИмя.tsx (хук с состоянием и эффектами), presentation.tsx (отображение), types.ts, стили и presentation.stories.tsx.\n3. Презентационный компонент не импортирует хуки данных и стор — всё через пропсы.\n4. Истории Storybook: основное состояние, загрузка, пусто, ошибка.\n5. Запусти сборку и линтер, исправь ошибки в новых файлах.\n\nОтчёт: список файлов, пример использования, почему выбран ui или features, где живут состояние, эффекты и отрисовка."
    }
  ]
}

Действия

НазадМобильное приложение по скриншотамДалееРежим отладки для ИИ-агента
prompt.txt· заполнено 0 из 4
  1. 1Создай React-компонент по паттерну Container/Presentation.
  2. 2​
  3. 3Имя компонента (PascalCase): [ИМЯ КОМПОНЕНТА]
  4. 4Тип: [ui ИЛИ features]
  5. 5Что делает: [ОПИСАНИЕ]
  6. 6Стили: [CSS Modules / SCSS / Tailwind]
  7. 7​
  8. 8Если чего-то из этого не хватает — сначала спроси.
  9. 9​
  10. 10Правила классификации:
  11. 11- ui — только отображение: получает данные и колбэки через пропсы, без состояния приложения, запросов и побочных эффектов;
  12. 12- features — есть состояние, запросы, контекст или стор, бизнес-логика.
  13. 13Даже если я указал ui, но компоненту нужна логика, — предложи сделать его features или вынести логику в родителя.
  14. 14​
  15. 15Порядок:
  16. 161. Проверь, нет ли уже компонента с таким именем в src/components/ui или src/components/features. Если есть — не перезаписывай, спроси меня.
  17. 172. Создай файлы:
  18. 18 - ui: index.tsx, стили, index.stories.tsx;
  19. 19 - features: index.tsx (контейнер), useИмя.tsx (хук с состоянием и эффектами), presentation.tsx (отображение), types.ts, стили и presentation.stories.tsx.
  20. 203. Презентационный компонент не импортирует хуки данных и стор — всё через пропсы.
  21. 214. Истории Storybook: основное состояние, загрузка, пусто, ошибка.
  22. 225. Запусти сборку и линтер, исправь ошибки в новых файлах.
  23. 23​
  24. 24Отчёт: список файлов, пример использования, почему выбран ui или features, где живут состояние, эффекты и отрисовка.