Pular para o conteúdo

Efeitos

Nesta página

effect(|| { ... }) registra uma reação: o fechamento roda uma vez ao ser criado e, depois, novamente sempre que qualquer signal lido dentro dele mudar. Qualquer chamada a .get() dentro do corpo registra uma dependência automaticamente — não há lista manual de deps.

Efeitos são ideais para efeitos colaterais: logging, persistência, atualizações de interface — qualquer coisa que precisa espelhar o estado reativo.

Criação do effect, rastreio automático de dependência e re-execução por escrita.

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 no Zolo

9 resultados

enespt-br