Към всички skills

stimulus

sandnap · Разработка

Best practices for using Stimulus controllers to add JavaScript behavior to HTML

Оригинален текст · няма потвърден превод на български

Първо прочетете инструкцията.

Файлът се зарежда от посочения източник само по ваше действие. Можете да го прочетете тук, да го копирате или да го запазите като .md.

Оригинален SKILL.md
GitHub хранилище
Звезди на репото
6
Лиценз
Не е посочен. Проверете в репозитория.
Последна проверка на записа
Няма посочена дата

Добавете в своя инструмент.

Командата отваря избора на skills от репозитория. Прочетете файла и условията на автора преди изпълнение.

npx skills add sandnap/easy_notes

Страницата копира текст. Не инсталира и не изпълнява нищо на устройството ви.

Откъс от SKILL.md

Началото на файла на автора, без превод.

Stimulus Best Practices for Rails Applications

Rule updated on 12/15/2025 to Stimulus version 3.2.2

Stimulus is a modest JavaScript framework designed to augment your HTML with just enough behavior. It connects JavaScript to the DOM via data attributes, keeping your HTML as the source of truth.

For full reference see https://stimulus.hotwired.dev/

Core Concepts

ConceptPurposeData Attribute
ControllerJavaScript class that adds behaviordata-controller="name"
TargetImportant elements referenced in JSdata-name-target="targetName"
ActionEvent handlers connecting DOM to methodsdata-action="event->name#method"
ValueReactive data stored in HTMLdata-name-value-name="value"
ClassCSS classes toggled by the controllerdata-name-class-name="class"
OutletReferences to other controllersdata-name-outlet-name="selector"

When to Use Stimulus

Use Stimulus for:

  • Toggle visibility (dropdowns, modals, accordions)
  • Form enhancements (character counters, auto-submit, validation UI)
  • Copy to clipboard
  • Keyboard shortcuts
  • Animations and transitions
  • Client-side filtering/sorting (small datasets)
  • Debounced input handlers
  • Any behavior that doesn't require server data

Don't use Stimulus for:

  • Data that should come from the server (use Turbo Streams instead)
  • Complex state management (consider if your approach is right)
  • Things Turbo already handles (form submission, navigation)

Controller Structure

File Naming & Location

Controllers that live in app/javascript/controllers/ and follow the naming convention below are automatically registered.

File NameController NameHTML Reference
hello_controller.jsHelloControllerdata-controller="hello"
clipboard_controller.jsClipboardControllerdata-controller="clipboard"
user_form_controller.jsUserFormControllerdata-controller="user-form"

Basic Controller Template

Целият SKILL.md в GitHub