Efectos
En esta página
effect(|| { ... }) registra una reacción: el cierre se ejecuta una vez al crearse
y de nuevo siempre que cualquier signal leído dentro de él cambie.
Cualquier llamada a .get() dentro del cuerpo registra una dependencia
automáticamente — no hay lista manual de deps.
Los efectos son ideales para efectos secundarios: logging, persistencia, actualizaciones de interfaz — cualquier cosa que necesite reflejar el estado reactivo.
Creación del effect, rastreo automático de dependencia y re-ejecución por escritura.
02-effect-tracking.zolo
// Feature: effect — runs once on creation, re-runs when tracked signals change
// Syntax: `effect(|| { ... })`. Any tracked signal read inside the closure
// registers as a dependency of this effect.
// When to use: side effects that must mirror reactive state — DOM
// updates, logging, persistence, derived computations with side effects.
let count = signal(0)
// Initial creation runs the closure once and records `count` as a dep.
let e = effect(|| {
print("count = {count.get()}")
})
// expected: count = 0
// Each set retriggers the effect.
count.set(1)
// expected: count = 1
count.set(2)
// expected: count = 2
// Setting to the same value still triggers (no equality check).
count.set(2)
// expected: count = 2
Consulta también