Skip to main content

turbo_streams_integration

📡 Integrating with Turbo Streams​

Stimulus can listen for Turbo Stream broadcasts to update controllers reactively. Use addEventListener('turbo:before-stream-render') to intercept and bind data to your controller before it’s rendered.

import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
connect() {
document.addEventListener(
"turbo:before-stream-render",
this.handleStream.bind(this)
)
}

handleStream(event) {
const stream = event.target
if (stream.getAttribute("data-update-controller") === this.identifier) {
this.element.innerHTML = stream.innerHTML
}
}
}