public abstract class ReactiveNodeA node in the signal graph — something that produces a value, consumes one, or both.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The whole propagation model lives here, and it is the one from ADR-007: writing pushes invalidation without evaluating anything, and reading pulls evaluation only as far as it has to go. A Signal`1 is a producer only, an Effect is a consumer only, and a Computed`1 is both — which is why the two halves are on one type rather than two.
Liveness is the subtle part. A producer only pushes to consumers that are live, meaning an effect, or a computed that some live consumer is (transitively) watching. A computed nobody is watching registers no edge back from its dependencies at all, so it neither costs anything on write nor keeps itself alive through them — it is re-verified by polling on the next read instead. Without this, every computed ever created would be retained forever by whatever signal it happened to read once, which is the classic way a reactive graph turns into a memory leak.
Used by (11)
- CollectionSignalVixen.Ui.Reactive
- ComputedVixen.Ui.Reactive
- ComputedTestsVixen.Ui.Reactive.Tests
- EdgeVixen.Ui.Reactive
- EffectVixen.Ui.Reactive
- EffectTestsVixen.Ui.Reactive.Tests
- GraphTestsVixen.Ui.Reactive.Tests
- LinkedSignalVixen.Ui.Reactive
- ReactiveGraphVixen.Ui.Reactive
- SignalVixen.Ui.Reactive
- SignalTestsVixen.Ui.Reactive.Tests