Saltar al contenido

Valores Computados

En esta página

computed(|| { ... }) encapsula una derivación: el cuerpo se ejecuta en la primera lectura y permanece en caché hasta que algún signal leído dentro de él cambie. A diferencia del effect, es perezoso — solo recalcula cuando alguien lo lee.

El rastreo es transitivo: un effect que lee un computed pasa a depender de todos los signals de los que depende el computed. Esto hace seguro componer computeds en cadena sin perder reactividad.

doubled recalcula en cada cambio de count; el effect ve los dos de forma sincronizada.

03-computed-derived.zolo
Playground
// Feature: computed — a memoized signal derived from other signals

// Syntax: `computed(|| { ... })`. The body is re-run when any signal

// it reads changes. Reads are tracked transitively: an effect that

// reads a computed depends on whatever the computed depends on.

// When to use: derived values that should recompute lazily and be

// shared between effects (full name, total price, formatted string).


let count = signal(0)
let doubled = computed(|| { count.get() * 2 })

let e = effect(|| {
  print("count = {count.get()}, doubled = {doubled.get()}")
})

// expected: count = 0, doubled = 0


count.set(5)

// expected: count = 5, doubled = 10


count.set(7)
// expected: count = 7, doubled = 14


// Computed values cache: reading `doubled` twice in one effect run

// re-uses the result — the body only runs when a dep changes.

Desafío

Añade un tercer computed llamado label que devuelva "par" o "impar" e inclúyelo en la impresión del effect.

Consulta también

Buscar en Zolo

9 resultados

enespt-br