- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看Tracker.autorun ,这主要是神奇的......但我想知道它如何决定哪些变量将形成计算的依赖关系。它只挑选出“ react 性”变量,例如以下内容:
window.bar = 1
Tracker.autorun (c) =>
bar = window.bar
foo = Session.get('foo')
console.log('autorun', foo, bar)
Session.set('foo')
的值这将导致计算再次运行。
window.bar
不会导致重新运行。如果我使用订阅结果(不是集合),这也可以,所以我猜也是响应式(Reactive)的。
subscribe
调用在
autorun
之外,但它会将结果放入数组中。所以这意味着 Tracker 不仅跟踪对 (reactive var) 访问器方法的调用,还跟踪 block 内引用的任何变量——即使设置这些方法的调用在
autorun()
之外。堵塞。
subList = [
Meteor.subscribe("Players"),
Meteor.subscribe("Stuff" )
]
Tracker.autorun (c) =>
subReady = _.filter subList, (item) ->
return item.ready()
allDone = (subList.length == subReady.length)
# this code will rerun when the subs ready() are true
最佳答案
我不是专家,也没有阅读太多关于它的内容,但我可以尝试简要解释一下。
所有的 react 变量都有一个叫做依赖的东西。例如,当创建一个新的 ReactiveVar
,创建了一个新的依赖项。 See here .
要从 react 变量中检索值,必须调用一个函数。在那个“getter”中,依赖被指示记住它有一个依赖。例如,see here对于 ReactiveVar.get
.
要更改 react 变量的值,必须调用一个函数。在那个“setter”中,通知依赖项发生了一些变化,并且表明依赖于依赖项的所有函数都必须重新运行。例如,see here对于 ReactiveVar.set
.
不复杂,对吧?好吧,这只是简单的部分,现在剩下的就是构建使其工作的基础设施:) 这更难解释,也更复杂。
react 性变量本身不是 react 性的;它们必须在 react 性环境中进行评估才能具有反应性。通过调用 Tracker.autorun
创建响应式(Reactive)环境. See here .
当您调用 Tracker.autorun
,您传递给它的函数将在新的 react 环境中执行, react 变量通知的所有依赖项都使用 depend
方法将被环境跟踪。当您调用 aDependency.depend
, this function将被执行,并且它会将依赖项添加到环境列表中,而不是它所依赖的依赖项。
当 react 变量改变其值时,this function将被执行。它告诉环境它所依赖的 react 变量之一已更改,并使环境中的所有依赖项无效。发生这种情况后,您传递给 Tracker.autorun
的整个函数将重新运行,并跟踪新的依赖项。
你了解大局吗?它的实现比我解释的要复杂一些,但我认为这就是它的工作原理。
关于meteor - Tracker.autorun 如何挑选它的计算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354582/
我正在制作一个简单的跳棋游戏并设置了网格系统,我只想开始设置下面类中显示的参数; #include #include using namespace std; class Tracker { pr
我使用的是 Arch Linux,内核 3.16。 从上周开始,我的两个进程 tracker-extract 和 tracker-store 占用了过多的内存。导致系统每 2 小时挂起一次。 trac
我在单个节点上安装了 hadoop。我使用的操作系统是 Ubuntu。我已经非常成功地为 1st 创建了一个 hduser。当我删除现有的 hduser 并在同一系统中创建一个新的 hduser 时,
在我的 hadoop 安装中,我没有找到 mapred-site.xml 文件,但它有 mapred-site.xml.template。 我已将以下属性添加到 mapred.xml.template
我是hadoop的新手,所以我有一些疑问。如果主节点发生故障,hadoop 集群会发生什么?我们能否在没有任何损失的情况下恢复该节点?是否可以保留一个辅助主节点在当前主节点发生故障时自动切换为主节点?
我已将其发布为issue on GitHub opencv_contrib,但尚未回复。 系统信息(版本) OpenCV => 4.2.0 操作系统/平台=> Windows 10,64位 编译器=>
我正在 laravel 5.2 中安装 Laravel Stats Tracker,并添加我的提供者和门面,设置我的中间件文件、kernel.php 和 config/database.php 文件。
我遇到与Tracker相关的问题。 [InvalidOperationException: Tracker.Current is not initialized] Sitecore.Analyt
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic。 7年前关
iOS 上的 Xcode VM Tracker 检测工具中的“交换大小”是什么? iOS 10 有交换功能吗? 最佳答案 它指的是压缩内存,这是iOS处理未使用页面的方式。来源:https://dev
看Tracker.autorun ,这主要是神奇的......但我想知道它如何决定哪些变量将形成计算的依赖关系。它只挑选出“ react 性”变量,例如以下内容: window.bar = 1
我正在使用 Template.onCreated 创建一些模板,然后使用 Tracker.autorun 进行一些订阅,然后从服务器收集数据并将它们存储在客户端的 MiniMongo 上。 然后,我可
我有这样一个 Meteor 应用程序示例: import React from 'react'; import { Meteor } from 'meteor/meteor'; import { re
我有一个已经存在多年的开源 gps 跟踪应用程序。最近,我一直在提示,在 android nougat 中,人们不是每分钟获取一次更新,而是当手机拔下时每五分钟从手机获取一次更新. 尽管我们尝试将其关
我一直在尝试测试新的 Vision API,并让多跟踪器应用在 Android Studio 中运行。 我在手机上运行示例应用程序,但无法检测到任何条形码。我已经测试了 ISBN 码、QR 码和人脸。
我在 mapred-site.xml 中做了一些条目,要选择这些更改,我需要重新启动在集群节点上运行的 TT 和 JT。 我可以从命令行使用云时代管理器 Web 服务重新启动它们吗?因此,我可以在任何
我在足球视频中遇到了一些与 SORT 跟踪器(卡尔曼滤波器和匈牙利算法的组合)与 YOLO v3 相结合相关的问题。正如主论文中也提到的,SORT 在身份切换方面遭受了很多损失(换句话说,即使跟踪对象
我想使用 SDK v4 在 Google Analytics(分析)中设置用户范围维度。该维度的值在运行时永远不会改变。 当我创建维度 following this instructions 时该页面
本文整理了Java中org.linkedin.zookeeper.tracker.ZooKeeperTreeTracker类的一些代码示例,展示了ZooKeeperTreeTracker类的具体用法。
尝试在 Tracker 中将文件(图像)附加到工件上时出现错误: 2018/07/11 13:16:04 [error] 3553#0: *1299 FastCGI sent in stderr: "
我是一名优秀的程序员,十分优秀!