Knockout: computado observável vs função
Ao usar o knockout, qual é a vantagem de usar observáveis computados somente leitura em vez de funções simples?
Tome o seguinte construtor de viewmodel e snippet de html, por exemplo:
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>
Tudo aqui parece funcionar como você esperaria, então há uma razão pela qual eu deveria usar:
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>
Eu noto que a documentação emhttp://knockoutjs.com/documentation/computedObservables.html afirma que "... ligações declarativas são simplesmente implementadas como observáveis computados", isso significa que é necessário usá-las explicitamente em meus modelos de visão?