构造计算监控(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() 是等效的(但是在计算监控内部怎么调用呢?不是很清楚)。

Computed Observable的参数的更多相关文章

  1. Knockout.js(三):计算属性(Computed Observable)

    在Knockout2.0之前,计算属性被称之为依赖属性,在2.0版本中,ko.dependentObservable重命名为ko.computed,因为它在读.解释和类型上更简单.在实际使用中,ko. ...

  2. knockout.js

    最近在使用knockout这个JS的MVVM模型,真的很不错,每次去查英文的文档,的确很累的,抽空的时候就把看到的文档按自己的理解翻译一下.当然我不是逐字的翻译. knockout的官方说明:http ...

  3. Vue -computed传参数

    vue 中computed想传递参数怎么办? 闭包在这里起到的重要的作用 <input v-model="newItem(key,val)" type="text& ...

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

    Pure computed observables Pure computed observables是KO在3.2.0版本中推出的.她相对于之前的ComputedObservables有很多改进: ...

  5. Knockout 新版应用开发教程之Computed Observables

    Computed Observables 如果你有监控属性firstName和lastName的话,此时如果你想要显示全名? 这个时候computed(以前叫做依赖)监控属性就出马了,这是一个函数用来 ...

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

    书接上回,前面谈到了在视图模型中可以定义普通的observable属性以及observableArray属性实现与UI元素的双向绑定,这一节我们继续探讨第三种可实现绑定的属性类型:computed o ...

  7. 纯计算监控(Pure computed observables)

    纯计算监控,在knockout 3.2.0里才有,提供了对性能和内存更好的管理.这是因为纯计算监控不包含对他的依赖的订阅.特点有: 防止内存泄漏 降低计算开销:值不再是observed,是一个不会重新 ...

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

    新手可忽略此小节,可写依赖监控属性真的是太advanced了,而且大部分情况下都用不到. 一般情况下,计算监控的值是通过其他监控属性的值计算出来的,因此它是只读的.这个看似很奇怪,我们有什么办法可以让 ...

  9. 使用计算监控(Using computed observables)

    计算监控(Computed Observables) 如果有两个监控属性firstName, lastName,此时我们要显示full name,我们要怎么办呢? 这时,可以创建一个computed ...

随机推荐

  1. CentOS 6.5的安装详解

    CentOS 6.5的安装详解 主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS 免费: RedHat 和CentOS差别不大,Cent ...

  2. IntentService和Service的区别

    整个看下来是一个Service+Thread+handle的结合体, Service:比Activity的被kill的级别低 Thread:不阻塞UI线程 Handle:队列式的消息循环 那这个玩意的 ...

  3. Selenium+Python之163邮件发送

    今晚写了一个163邮箱登录的脚本,由于不停的访问163登录主页导致直接访问163邮箱主页登录需要输入验证码,因为无法获取到验证码,就这导致直接访问主页登录脚本不可行,为了绕过验证码,现在先访问hao1 ...

  4. SQL Server函数格式

    函数格式CREATE FUNCTION -- ============================================= -- Author: Clive Chinery -- Cre ...

  5. NSXMLParser自定义的一个xml解析工具

    // // DenglXMLParser.h // #import <Foundation/Foundation.h> @interface DenglXMLParser : NSXMLP ...

  6. win10 Incredibuild 兼容

    电脑换了win10,所有的软件都需要重新安装. win10的体验还是很不错的.但是也有一堆的问题.原来的vs2010今天无法再使用分布式编译IncrediBuild. 现象是,虽然可以连上分布式编译的 ...

  7. OC基础面试题

    1.iOS中delegate代理对象使用weak 之前不停的使用assign,今天在调试一段的时候,发现使用assgin的时候程序会crash,报错EXC_BAD_ACCESS, 经过一番研讨,发明如 ...

  8. 图片验证码自动识别,使用tess4j进行验证码自动识别(java实现)

    1.下载tess4j依赖的jar包,maven中央库地址:<dependency>            <groupId>net.sourceforge.tess4j< ...

  9. java登录密码效验

    密码校验需求: 1) 密码控制只能输入字母.数字.特殊符号(~!@#$%^&*()_+[]{}|\;:'",./<>?)2) 长度 6-16 位,必须包括字母.数字.特殊 ...

  10. 1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组

    1.移动端的cookie不支持中文字符.可以用编码,解码的方式解决. 2.json字符串变成相应 的,json对象数组字符串.就这样 3.不同客户端(移动端.电脑)的请求,在C#服务端的取时间的格式竟 ...