Skip to content
This repository has been archived by the owner on Oct 24, 2021. It is now read-only.

Latest commit

 

History

History
43 lines (32 loc) · 1.54 KB

reactive-var.md

File metadata and controls

43 lines (32 loc) · 1.54 KB
title description
ReactiveVar
Documentation of ReactiveVar, a simple reactive variable package.

To use ReactiveVar, add the reactive-var package to your project by running in your terminal:

meteor add reactive-var

{% apibox "ReactiveVar" %}

A ReactiveVar holds a single value that can be get and set, such that calling set will invalidate any Computations that called get, according to the usual contract for reactive data sources.

A ReactiveVar is similar to a Session variable, with a few differences:

  • ReactiveVars don't have global names, like the "foo" in Session.get('foo'). Instead, they may be created and used locally, for example attached to a template instance, as in: this.foo.get().

  • ReactiveVars are not automatically migrated across hot code pushes, whereas Session state is.

  • ReactiveVars can hold any value, while Session variables are limited to JSON or EJSON.

An important property of ReactiveVars — which is sometimes a reason for using one — is that setting the value to the same value as before has no effect; it does not trigger any invalidations. So if one autorun sets a ReactiveVar, and another autorun gets the ReactiveVar, a re-run of the first autorun won't necessarily trigger the second. By default, only primitive values are compared this way, while calling set on an argument that is an object (not a primitive) always counts as a change. You can configure this behavior using the equalsFunc argument.

{% apibox "ReactiveVar#get" %}

{% apibox "ReactiveVar#set" %}