构造计算监控(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. CodeForces 711C Coloring Trees

    简单$dp$. $dp[i][j][k]$表示:前$i$个位置染完色,第$i$个位置染的是$j$这种颜色,前$i$个位置分成了$k$组的最小花费.总复杂度$O({n^4})$. #pragma com ...

  2. MySQL之索引优化

    很多数据库系统性能不理想是因为系统没有经过整体优化,存在大量性能低下的SQL 语句.这类SQL语句性能不好的首要原因是缺乏高效的索引.没有索引除了导致语句本身运行速度慢外,更是导致大量的磁盘读写操作, ...

  3. scale-free network

    原文链接:http://lihailian.bokee.com/6013647.html 1.什么是无尺度现象? 统计物理学家习惯于把服从幂次分布的现象称为无尺度现象. 在做大量统计实验之前,科学家预 ...

  4. Qt通过极光推送向app推送消息

    简介 最近在做个项目,当客服端收到防盗的消息通知时向手机app推送一个消息,告知有防盗报警.这么小的功能没必要自己写个推送端,极光推送免费而且推送的成功率高,已经能满足我们的需求了. 极光推送的文档大 ...

  5. 织梦dedecms文章发布日期时间调用标签大全

    dedecms首页时间标签: 1.12-27 样式 [field:pubdate function='strftime("%m-%d",@me)'/] 2.May 15, 2012 ...

  6. java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)

    准备: JMenuBar  点击可展开控件本体 JMenu 点击可展开控件中的一级菜单 JMenuItem 点击可展开控件中的二级菜单 JFrame 程序运行时弹出的那个框框 这是一个使用点击可展开菜 ...

  7. 无法启动MYSQL服务”1067 进程意外终止”解决办法

    原文:http://www.111cn.net/database/mysql/48888.htm   本文章主要是总结了各种导致mysql提示无法启动MYSQL服务"1067 进程意外终止& ...

  8. UI_APPEARANCE_SELECTOR 延伸

    iOS后属性带UI_APPEARANCE_SELECTOR 可以统一设置全局作用 例如: 1>开关控件 @property(nullable, nonatomic, strong) UIColo ...

  9. 外部系统集成BIEE

    1.外部系统集成BIEE 隐藏工具栏和仪表盘右上角的菜单 2.BIEE 11g 嵌入Iframe InIFrameRenderingMode有三种取值,分别是prohibit.sameDomainOn ...

  10. Python统计栏目页面数量

    主要为了装个B,统计栏目页面数量时候用的,多线程基本照抄 http://www.cnblogs.com/fnng/p/3670789.html 关于对SEO有什么用处...我觉得...仅对本人有用,P ...