📅  最后修改于: 2020-10-23 07:36:49             🧑  作者: Mango
值更新时,KnockoutJs自动跟踪依赖项。它有一个称为依赖项跟踪器(ko.dependencyDetection)的对象,该对象充当两方之间用于订阅依赖项的中介。
以下是依赖性跟踪算法。
步骤1-每当您声明计算的可观察值时,KO都会立即调用其求值器函数以获取其初始值。
步骤2-订阅者设置为评估者读取的任何可观察到的内容。在应用程序中,将不再使用的旧订阅被处置。
步骤3 -KO最终通知更新后的可计算观测值。
例
KnockoutJS How Dependency Tracking Works
输出
让我们执行以下步骤,看看上面的代码如何工作-
将上面的代码保存在dependency_tracking.htm文件中。
在浏览器中打开此HTML文件。
输入任何水果名称,然后单击添加按钮。
通过使用peek函数,可以在不创建依赖关系的情况下访问Compute Observable。它通过更新计算的属性来控制Observable。
例
KnockoutJs Controlling Dependencies Using Peek
Computed Log
输出
让我们执行以下步骤,看看上面的代码如何工作-
将上面的代码保存在dependency_tracking_peek.htm文件中。
在浏览器中打开此HTML文件。
ko.ignoreDependencies函数有助于忽略您不想在计算的依赖关系中跟踪的那些依赖关系。以下是其语法。
ko.ignoreDependencies( callback, callbackTarget, callbackArgs );
如果KO正在评估计算的可观测值,那么它将不会重新开始对从属计算的可观测值的评估。因此,在依赖链中包括循环是没有意义的。