Session
优质
小牛编辑
132浏览
2023-12-01
Session
在客户端,Session
提供了一个全局对象,可以用它来保存任意的键值对。例如:保存列表中当前选中项。
Session
的特殊之处在于,它是响应式的。如果在template helper或Tracker.autorun
里调用了 Session.get("myKey")
,那么无论何时调用Session.set("myKey", newValue)
都会触发相应的模板片段自动重新渲染。
Session.set(key, value)
Client
将session里键key的值设为value。并通知所有监听器:键key的值发生了变化(例如:通知那些调用Session.get
获取键key
值的模板helper或是autorun,重新渲染模板或是重新执行Tracker.autorun
)。
Arguments
key String
The key to set, eg, selectedItem
value EJSON-able Object or undefined
The new value for key
Session.get(key)
Client
获取session里键key的值。如果是在一个响应式计算(reactive computation)内部。当通过Session.set
修改键key的值时,会作废对应的计算。这个方法会返回键key值的克隆副本,所以如果键key的值是一个对象或数组,修改返回值并不会改变session里键key的值。
Arguments
key String
The name of the session variable to return
例如:
<!-- In your template -->
<template name="main">
<p>We've always been at war with {{theEnemy}}.</p>
</template>
// In your JavaScript
Template.main.helpers({
theEnemy: function () {
return Session.get("enemy");
}
});
Session.set("enemy", "Eastasia");
// Page will say "We've always been at war with Eastasia"
Session.set("enemy", "Eurasia");
// Page will change to say "We've always been at war with Eurasia"
Seesion
带我们初次体会到了响应式的魅力,视图会在必要时自动更新,无需手动调用render
函数。 在下一节,将会学习如何使用Tracker,一个非常轻量的库,使响应式成为可能。