KnockoutObservable<string[]> and KnockoutObservable<string>[]
有什么区别
什么时候使用它们中的任何一个?
答案 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。