В чем разница между KnockoutObservable <string []> и KnockoutObservable <string>[] - PullRequest
0 голосов
/ 30 августа 2018

В чем разница между KnockoutObservable<string[]> and KnockoutObservable<string>[] Когда использовать любой из них?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Если вы хотите Observable Array, вы должны использовать https://knockoutjs.com/documentation/observableArrays.html

Если только фасад машинописного текста не делает что-то неожиданное (я не знаком с ним), скорее всего, это и массив наблюдаемых Knockout, или Observable типа Knockout, которые будут неправильными.

Но чтобы ответить на ваш вопрос, у них будут очень разные накладные расходы на производительность и разное использование.

Простой KnockoutObservable типа array, который будет обновляться только при замене всего массива. вы не будете получать уведомления, когда массив видоизменен, я не могу придумать причину его использования, за исключением, может быть, некоторых действительно тяжелых операций с данными, когда вы получаете поток информации массива.

Тем не менее, массив KnockOut Observables, даст очень большие потери производительности.

Вы создаете KnockoutObservable для каждого элемента . Каждый из этих элементов является отдельной наблюдаемой нокаутом, которую можно слушать независимо друг от друга. Просто вместо того, чтобы иметь имя свойства для привязки, у вас есть массив и ключ / индекс.

В 99% случаев вы, вероятно, ищете ObservableArray, который отличается.

0 голосов
/ 30 августа 2018

Когда вы подпишетесь на KnockoutObservable<string[]>, вы получите строковый массив (string[])

Другой является массивом наблюдаемых (KnockoutObservable<string>), каждый из которых преобразуется в результат со строкой типа.

Когда вы хотите получить массив строк, вы должны использовать KnockoutObservable<string[]>

...