构造计算监控(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. SQL 默认数据库被误删

    我今天也遇到了,自己解决了.这是我总结的:(不管这帖子沉到哪里了) 删除了SQL服务器默认数据库,无法连接服务器,用户[]登录失败. 1,使用管理员账户修改此用户的默认数据库.    企业管理器,展开 ...

  2. JavaScript忍者秘籍——原型

    概要:本篇博客主要介绍JavaScript的原型 1.对象实例化 - 初始化的优先级 初始化操作的优先级如下: ● 通过原型给对象实例添加的属性 ● 在构造器函数内给对象实例添加的属性 在构造器内的绑 ...

  3. css3变形动画

    transform:变形 rotate:旋转 translate:移动 scale:缩放 skew:扭曲 一切变化都是“形变”引起的变化,所以transform就是老大,大家都围着他转 1.trans ...

  4. chd校内选拔赛题目+题解

    题目链接   A. Currency System in Geraldion 有1时,所有大于等于1的数都可由1组成.没有1时,最小不幸的数就是1. #include<iostream> ...

  5. escape,encodeURI,encodeURIComponent

    JavaScript/js中,有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,d ...

  6. Git Github jekyll,gem Liquid模板语言 Markdown

    Git Git教程  常用 Git 命令清单   Git远程操作详解  使用jekyll建立个人网站 Git is a free and open source distributed version ...

  7. 关于ASCII,Unicode和UTF-8

    自己也不是很明白这些编码,百度了一下,整理出来与大家分享分享,在此感谢作者. 先说说这些编码 ANSI:最早的时候计算机ASCII码只能表示256个符号(含控制符号),这个字符集表示英文字母足够,其中 ...

  8. pdf 电子书分享

    http://yunpan.cn/cLgXntGmIas7A 访问密码 7d04 来自为知笔记(Wiz)

  9. 数据库及SQL优化

    一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...

  10. wangEditor的jQuery插件化

    wangEditor是一款优秀的Web富文本编辑器.这篇随笔中讲述的wangEditor版本是2.1.22,由于它依赖于jQuery(作者打算在第三版中取消对jQuery的依赖),那么如果能使用$(& ...