在 Deps.Dependency.hasDependents 下的 Meteor 文档中,它说:
对于创建许多内部依赖项的反应性数据源,此函数可用于确定特定依赖项是否仍在跟踪任何依赖关系,或者是否可以清理它以节省内存。
有人可以提供一个使用 dependency.hasDependents() 清理内存的例子吗?
谢谢。
你需要对依赖有一个很好的理解,所以我建议你仔细看看 Chris Mather 制作的这个教程:http ://www.eventedmind.com/posts/meteor-build-a-reactive-data-资源
在下面的简单示例中,您可以确保该值是否在依赖项(客户端代码)的某处使用。
var title = 'My Headline';
var titleDeps = new Deps.Dependency;
var setTitle = function(s) {
title = s;
titleDeps.changed();
};
Template.HelloWorld.getTitle = function() {
Deps.depend(titleDeps);
return title;
};
因此,在模板中的某处使用 {{getTitle}},您将获得从函数 Template.HelloWorld.getTitle 到 var titleDeps 的依赖关系。
所以例如将打印真实
Template.HelloWorld.rendered = function() {
console.log(titleDeps.hasDependents());
}
通过删除 Deps.depend(titleDeps); 从 Template.HelloWorld.getTitle 你会看到 false。
在用例中,您可以检查已订阅的数据库集合或类似的东西,以便您可以取消设置数据以释放缓存。