Computed Observable的参数

构造计算监控(Constructing a computed observable)

1. ko.computed( evaluator [, targetObject, options] )

evaluator  用来得到结果的函数

targetObject  定义在evaluator调用时的this

options  参见下面的说明

2. ko.computed( options )

read  必须。用来得到结果的函数。

write  可选。如果设置了此值,则计算监控是可写的。 (参见 可写的计算监控)

owner  可选。read, write函数中的This。

pure  可选。如果为true,则这个计算监控是pure computed observable,效果和ko.pureComputed是一样的。

deferEvaluation  可选。如果设置为true,则这个计算监控的值不会马上计算,除非有其他代码主动访问它的值或者手动订阅。一般情况下,计算监控的值是会在创建的时候马上计算的。

disposeWhenNodeIsRemoved  可选。如果指定了,当指定的DOM元素被删除了,计算监控也会被释放。这通常会用在模板绑定中,当模板的元素被删除了,计算监控也会被释放。

3. ko.pureComputed( evaluator [, targetObject] )  构造pure computed observable,参数意义参见ko.computed

4. ko.pureComputed( options )  参数意义参见ko.computed。

使用计算监控(Using a computed obsevable)

计算监控提供了如下的函数:

dispose()  手动调用释放计算监控,清除所有订阅。通常要停止 对计算监控值的计算或者要清除计算监控的内存时会调用(一般很少用)

extend(extenders)  扩展用

getDependenciesCount()  获取计算监控的依赖数。

getSubscriptionsCount()  获取订阅数。

isActive()  返回是否计算监控可以被更新。计算监控如果没有依赖它就会是inactive的。

peek()  返回当前值,而不会产生依赖。

subscribe( callback [,callbackTarget, event] )  注册一个manual subscription

使用上下文

在计算函数中,可以使用ko.computedContext获取当前计算属性的上下文,它提供了如下的函数:

isInitial()  一个函数,如果返回true,说明是第一次调用。在pure computed observables中,isInitail()是undefined.

getDependenciesCount()  获取计算监控到当前调用此函数的代码为止所产生的依赖数

注:ko.computedContext.getDependenciesCount()  和 在计算监控内部调用getDependenciesCount() 是等效的(但是在计算监控内部怎么调用呢?不是很清楚)。

时间: 2024-09-30 07:18:53

Computed Observable的参数的相关文章

初学knockoutjs记录8——Computed observables依赖监控(5 Computed Observables Reference 计算监控属性参考)

Computed Observables Reference 计算监控属性参考 下述文档描述了怎样构造和使用计算监控属性. Constructing a computed ovservable 构造计算监控属性 一个计算监控属性可以使用下列任一方式进行构造: 1. ko.computed ( evaluator [, targetObject, options] ) -- 这种方式是创建计算监控属性最常用的方式,支持大多数场景. evaluator -- 一个函数用来评估计算当前计算监控属性的值

KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables

Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: 防止内存泄漏 减少计算开销 在PureComputed函数中,随着相关监控属性值变化的时候,在两种状态之间切换. 每当它没有 值变化的时候,它处于睡眠状态.当进入睡眠状态时,其配置的所有订阅它的依赖.在这种状态下,它不会订阅任何监控属性.如果当它被读取,返回的也是睡眠状态的值. 每当它的 值变化的时

Knockoutjs官网翻译系列(三) 使用Computed Observables

书接上回,前面谈到了在视图模型中可以定义普通的observable属性以及observableArray属性实现与UI元素的双向绑定,这一节我们继续探讨第三种可实现绑定的属性类型:computed observables,我称它为计算observable(说实话关于observable怎么翻译我还真拿不准). 要是你在视图对象中已经定义了一个叫firstName的observable属性和一个叫lastName的observable属性,而你想显示这个人的全名那要如何处理呢?这种情况下就到了co

可写的计算监控(Writable computed observables)

新手可忽略此小节,可写依赖监控属性真的是太advanced了,而且大部分情况下都用不到. 一般情况下,计算监控的值是通过其他监控属性的值计算出来的,因此它是只读的.这个看似很奇怪,我们有什么办法可以让他变成可写的吗. 此时,我们只需要提供一个callback的函数就可以做到. 通过你自定义的逻辑拦所有的读写操作,你可以像使用其他监控属性一样使用计算监控属性.类似obeservables一样,你可以一次改变多个observable或者computered observable属性的值,通过以下这种

纯计算监控(Pure computed observables)

纯计算监控,在knockout 3.2.0里才有,提供了对性能和内存更好的管理.这是因为纯计算监控不包含对他的依赖的订阅.特点有: 防止内存泄漏 降低计算开销:值不再是observed,是一个不会重新计算的computed observables. 根据是否有订阅,pure computed observable会自动在两状态间进行切换: 1. 当没有订阅者(subscribers)时,是sleeping状态.当进入sleeping状态时,会释放所有依赖的订阅.在这个状态期间,它不会订阅任何在函

使用计算监控(Using computed observables)

计算监控(Computed Observables) 如果有两个监控属性firstName, lastName,此时我们要显示full name,我们要怎么办呢? 这时,可以创建一个computed observables来实现,其实他就是一个function,根据firstName, lastName计算得到full name.当first name, lastName改变时,fullName也会自动更新. 例如,看下面的view model: function AppViewModel()

初学knockoutjs记录7——Computed observables依赖监控(4 Pure computed observables 纯计算监控属性)

Pure computed observables 纯计算监控属性 纯计算监控属性在knockout3.2.0中引入,给在大多数场合下常规的计算监控属性提供了一个速度和内存性能更好选择.这是因为纯计算监控属性在它本身没有被订阅的情况下不需要维护它的依赖. 它的特性: Prevents memore leaks 防止内存泄露.纯计算监控属性不再是一个程序引用,但是它的整个依赖依然存在. Reduces computation oberhead 减少计算开销.当值不再被监控时不再进行计算监控属性的计

RxJava 合并组合两个(或多个)Observable数据源

关键词:合并 Observable 前言 在RxJava中, 同时处理多个Observables是很常见的一种操作.下面我们简单分析下几个组合类的操作符. 如果你不想看操作符的介绍,可以直接跳到项目实战部分. Merge 在异步的世界经常会创建这样的场景,我们有多个来源但是只想有一个结果:多输入,单输出.RxJava的merge()方法将帮助你把两个甚至更多的Observables合并到他们发射的数据里.下图给出了把两个序列合并在一个最终发射的Observable. 正如你看到的那样,发射的数据

KnockoutJS-监控属性(observables)

ko基于以下核心特性: 监控属性(observables)和依赖跟踪(dependency tracking) 声明式绑定(declarative bingdings) 模板(templating) MVVM MVVM(Mode-View-ViewModel)是一种构建UI交互的设计模式,将复杂的UI 交互分为三个部分: 模型(Model):应用的存储数据模型.该模型表征业务领域的对象和操作,且独立于UI.使用ko时通常通过ajax请求服务器端来读写存储数据模型. 视图模型(ViewModel)