# qwik

Правило Cursor, которое подсказывает агенту, как писать Qwik-приложения: component$, useStore, QRL с суффиксом $ и загрузка данных через loader$.

- правило · `type=rule` · Cursor · ★ 3579
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/qwik.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/qwik

## Что делает

Правило описывает Qwik как edge-first фреймворк, который строится на ресумируемости, а не на гидратации. Отсюда главное требование: JavaScript грузится и выполняется только там, где он реально нужен.

Внутри шесть разделов с примерами «плохо» и «хорошо». Каждый кусок интерфейса оборачивается в `component$`, локальное состояние живёт в `useStore` с типизированным интерфейсом, клиентские эффекты откладываются до появления компонента во вьюпорте через `useVisibleTask$`. Все QRL — обработчики событий, хуки — получают суффикс `$`, иначе оптимизатор их не разобьёт на чанки. Для Qwik City правило советует файловый роутинг и `loader$` вместо выборки данных на клиенте.

Файл применяется к `**/*.{js,jsx,ts,tsx}`, то есть под него попадают все ваши JS и TS файлы. Если в проекте уже есть React-хуки вроде `useEffect` рядом с Qwik-кодом, правило будет тянуть агента к нативным примитивам — это повод проверить, что старые компоненты не смешаны в одной папке. Установка — просто положить файл по пути `.cursor/rules/qwik.mdc`.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/qwik.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/qwik.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/qwik.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/qwik.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/qwik.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/qwik.mdc

## Когда брать
- обернуть интерактивный компонент в `component$` вместо обычной функции
- заменить нереактивную переменную на `useStore` с типом
- отложить инициализацию сторонней библиотеки до появления компонента
- проставить суффикс `$` обработчикам событий и хукам
- перевести загрузку данных на `loader$` в Qwik City

## Примеры запросов агенту
- Перепиши этот компонент на Qwik: используй `component$`, `useStore` и `onClick$`
- Почему мой счётчик не обновляется? Проверь состояние по правилам qwik
- Перенеси выборку товаров на `routeLoader$` вместо клиентского fetch

## Похожие
- [qwik-basic-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/qwik-basic-cursorrules-prompt-file.md) — правило · ★ 41011
- [angular-new-app](https://affpapa.org/nevibecode/skills/angular-new-app.md) — скилл · 19200 установок
- [svelte5-best-practices](https://affpapa.org/nevibecode/skills/svelte5-best-practices.md) — скилл · 16600 установок
- [typescript-review](https://affpapa.org/nevibecode/skills/typescript-review.md) — скилл · 2300 установок
- [tanstack-store](https://affpapa.org/nevibecode/skills/tanstack-store.md) — скилл · 1800 установок
- [typescript-react-patterns](https://affpapa.org/nevibecode/skills/typescript-react-patterns.md) — скилл · 1100 установок

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 69 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
