构造计算监控(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. mac下 redis安装使用

    安装redis:brew install redis 开启redis服务:redis-server /usr/local/etc/redis.conf 重新打开一个命令窗口:redis-cli ,进入 ...

  2. Java Socket编程基础(1)

    参考资料: <Java网络编程精解> 孙卫琴 一.socket通信简介 什么是socket,简单来说,在linux系统上,进程与进程之间的通信称为IPC,在同一台计算机中,进程与进程之间通 ...

  3. Gentoo双网卡同时启用上内外网

    引言:本文配置网络通过 OpenRC/netifrc 方法(net.*scritps)配置. 外网网卡:enp3s4 内网网卡:enp2s0 外网地址(通过路由器) IP: 192.168.1.10 ...

  4. 关于masonry

    简单的就不说了,网上很多教程 设置优先级 [label setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis ...

  5. Process Explorer(增强任务管理器) V16.05 免费绿色版

    软件名称: Process Explorer(增强任务管理器)软件语言: 中文授权方式: 免费软件运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 1.2MB图片预 ...

  6. perl-Thread-Queue for openwrt

    在centos7下运行 openwrt trunk的时候提示需要perl-thread-queue. yum install perl-thread-queue,提示没有这个文件.百度和google, ...

  7. 安装mysql的遇到的问题

    源:安装用的是mysql官网的binary包. 之前装mysql都是直接放到/usr/local,就想试试放到其他地方,然后..就悲剧了. 安装步骤没啥说的,官网上有.因为放置的位置不一样所以有些执行 ...

  8. 常用的js事件

    onmouseover:鼠标放上去时触发事件 onmouseout:鼠标从上面移开时触发事件 onclick:鼠标单击事件 onfocus:获得焦点 onblur:失去焦点 onchange:下拉菜单 ...

  9. 《JavaScript高级程序设计》读书笔记 ---单体内置对象

    Global对象Global(全局)对象可以说是ECMAScript 中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的.ECMAScript 中的Global 对象在某种意义上是作 ...

  10. css后续属性