ReactiveVar
要使用 ReactiveVar
,请通过在终端中运行以下命令将 reactive-var
包添加到您的项目中
meteor add reactive-var
ReactiveVar仅客户端
仅客户端
摘要
ReactiveVar 的构造函数,表示单个响应式变量。
参数
源代码名称 | 类型 | 描述 | 必需 |
---|---|---|---|
initialValue | 任何 | 要设置的初始值。设置初始值时会忽略 | 是 |
equalsFunc | 函数 | 可选。一个具有两个参数的函数,在每次设置 ReactiveVar 时都会在旧值和新值上调用。如果它返回 true,则不执行设置。如果省略,则默认的 | 否 |
import { ReactiveVar } from "meteor/reactive-var"";
const reactiveVar = new ReactiveVar(
any,
() => {}, // this param is optional
);
ReactiveVar 保存单个值,可以获取和设置,以便根据响应式数据源的常用约定,调用 set
会使调用 get
的任何计算失效。
ReactiveVar 类似于会话变量,但有一些区别
ReactiveVar 没有全局名称,例如
Session.get('foo')
中的“foo”。相反,它们可以在本地创建和使用,例如附加到模板实例,如:this.foo.get()
。ReactiveVar 不会自动跨热代码推送迁移,而会话状态则会迁移。
ReactiveVar 可以保存任何值,而会话变量仅限于 JSON 或 EJSON。
ReactiveVar 的一个重要属性(有时是使用它的原因)是将值设置为与之前相同的值不会产生任何影响;它不会触发任何失效。因此,如果一个 autorun 设置了 ReactiveVar,而另一个 autorun 获取了 ReactiveVar,则第一个 autorun 的重新运行不一定能触发第二个 autorun。默认情况下,仅以这种方式比较原始值,而在调用 set
时,如果参数是对象(不是原始值),则始终被视为更改。您可以使用 equalsFunc
参数配置此行为。
reactiveVar.get仅客户端
仅客户端
摘要
返回 ReactiveVar 的当前值,并建立响应式依赖关系。
// reactiveVar is an instance of ReactiveVar
reactiveVar.get();