Skip to main content

connect_disconnect

🔄 Lifecycle: connect() and disconnect()​

Stimulus controllers have lifecycle callbacks: connect() runs when the element is added to the DOM, disconnect() when removed. Clean up listeners in disconnect().

// timer_controller.js
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
connect() {
this.interval = setInterval(() => {
console.log('tick')
}, 1000)
}

disconnect() {
clearInterval(this.interval)
}
}