Saltar al contenido

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
Playground
// 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

Buscar en Zolo

9 resultados

enespt-br