Effects menjalankan side effect yang otomatis re-run saat dependency berubah.
createEffect
import { createSignal, createEffect } from "solid-js"
function App() {
const [count, setCount] = createSignal(0)
createEffect(() => {
// Re-run setiap kali count() berubah
console.log("Count:", count())
document.title = `Count: ${count()}`
})
return <button onClick={() => setCount(c => c + 1)}>+1</button>
}
Tracking Otomatis
Solid otomatis melacak signal mana yang dibaca di dalam effect. Tidak perlu dependency array seperti useEffect di React.
onCleanup di Effect
createEffect(() => {
const timer = setInterval(() => console.log(count()), 1000)
onCleanup(() => clearInterval(timer))
})