Knockout: вычисляемая наблюдаемая функция против
При использовании нокаута, в чем преимущество использования вычисляемых наблюдаемых только для чтения, а не простых функций?
Возьмите следующий конструктор viewmodel и фрагмент HTML, например: & # x200B;
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = function(){
return self.someProperty() + self.anotherProperty();
};
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty()"></p>
Здесь все, кажется, работает так, как вы ожидаете, поэтому есть причина, по которой я должен вместо этого использовать:
var ViewModel = function(){
var self = this;
self.someProperty = ko.observable("abc");
self.anotherProperty = ko.observable("xyz");
self.someComputedProperty = ko.computed(function(){
return self.someProperty() + self.anotherProperty();
});
};
<input data-bind="value: someProperty"/>
<input data-bind="value: anotherProperty"/>
<p data-bind="text: someComputedProperty"></p>
Я заметил, что документация наhttp://knockoutjs.com/documentation/computedObservables.html утверждает, что "... декларативные привязки просто реализуются как вычисляемые наблюдаемые", значит ли это, что мне нужно явно использовать их в моих моделях представления?