Trigger
Alias Types:
type [<Erase>] Track<'T> = 'T -> unittype [<Erase>] Dirty<'T> = 'T -> unittype [<Erase>] DirtyAll = unit -> unittype [<Erase>] TriggerSignal<'T> = Track<'T> * Dirty<'T>type [<Erase>] TriggerCacheSignal<'T> = Track<'T> * Dirty<'T> * DirtyAll
createTrigger
let createTrigger(): TriggerSignal<unit>
Set listeners in reactive computations and then trigger them when you want.
Example
let track,dirty = createTrigger()createEffect(fun () -> track() // The trigger is now a dependency JS.console.log "Triggered!" )// ...dirty() // "Triggered!"
createTriggerCache
let createTriggerCache<'T>(): TriggerCacheSignal<'T>
Creates a cache of triggers that can be used to mark dirty only specific keys.
Cache is a
Map
orWeakMap
depending on the mapConstructor argument (default:Map
).
If mapConstructor is
WeakMap
then the cache will be weak and the keys will be garbage collected when they are no longer referenced.
Trigger signals added to the cache only when tracked under a computation, and get deleted from the cache when they are no longer tracked.
[<Extension>]static member track (triggerCache: TriggerCacheSignal<'T>, key: 'T): unit[<Extension>]static member dirty (triggerCache: TriggerCacheSignal<'T>, key: 'T): unit
Example
let map = createTriggerCache<int>()createEffect(fun () -> map.track(1) // adds to dependencies JS.console.log "Triggered!" )// ...map.dirty(1) // "Triggered!"
Last updated: 7/10/25, 7:05 AM