Stimulus는 Rails 애플리케이션에 최소한의 JavaScript로 클라이언트 측 상호작용을 추가하는 데 최적화된 프레임워크입니다.
Stimulus 컨트롤러
Stimulus 컨트롤러는 initialize, connect, disconnect와 같은 생명주기 메서드를 통해 DOM 연결 및 해제 시 로직을 관리합니다. 이를 통해 컨트롤러의 초기화 및 정리 작업을 효율적으로 수행할 수 있습니다.
타겟(Targets)
DOM 요소와의 상호작용은 타겟(Targets)을 통해 이루어집니다. 컨트롤러에서 static targets로 요소를 선언하고, HTML에서 data-[컨트롤러명]-target 속성으로 연결합니다. 컨트롤러에서는 this.[타겟명]Target으로 해당 DOM 요소에 접근하여 조작합니다.
액션(Actions)
사용자 이벤트를 처리하기 위해 액션(Actions)이 사용됩니다. HTML 요소에 data-action="[이벤트 유형]->[컨트롤러명]#[메서드명]" 형식으로 속성을 추가하여, 특정 이벤트 발생 시 컨트롤러의 해당 메서드가 실행되도록 선언적으로 연결합니다.
값(Values)
컨트롤러의 상태 관리를 위해 값(Values)이 제공됩니다. static values 객체에 이름, 타입, 기본값을 명시적으로 선언하면, DOM의 data-[컨트롤러명]-[값명]-value 속성과 자동으로 동기화됩니다. this.[값명]Value로 접근하며, 상태의 명시적 관리, 자동 동기화, 타입 검사 등 다양한 이점을 제공합니다.