KnockoutObservable <string []>和KnockoutObservable <string> []有什么区别

时间:2018-08-30 10:16:59

标签: javascript typescript knockout.js knockout-2.0 knockout-3.0

KnockoutObservable<string[]> and KnockoutObservable<string>[]有什么区别 什么时候使用它们中的任何一个?

2 个答案:

答案 0 :(得分:2)

订阅KnockoutObservable<string[]>时,您将收到一个字符串数组(string[]

另一个是可观察变量(KnockoutObservable<string>)的数组,每个观察变量都使用类型字符串解析为结果。

当您希望接收字符串数组时,应使用KnockoutObservable<string[]>

答案 1 :(得分:0)

如果要使用可观察数组,则应使用https://knockoutjs.com/documentation/observableArrays.html

除非打字稿外观进行了一些意外的操作(我不熟悉),否则很可能是Knockout Observables数组或类型为array的Knockout Observable都是不正确的。

但是要回答您的问题,它们将有非常不同的性能开销和不同的用途。

一个普通的array类型的KnockoutObservable仅在替换整个数组时才会更新。当数组发生突变时,您将不会收到通知,我无法想到使用它的任何理由,除了一些真正的数据密集型操作,您会在其中接收到数组信息流。

但是,一组KnockOut Observable会带来非常大的性能开销。

您正在为每个元素创建一个KnockoutObservable 。这些元素中的每一个都是一个单独的Knockout Observable,可以相互独立收听。而不是拥有要绑定的属性名称,您有了数组和键/索引。

在99%的情况下,您可能正在寻找与众不同的ObservableArray。