【问题标题】:knockoutJs, when to use ko.computed淘汰赛,何时使用 ko.computed
【发布时间】:2012-10-05 04:04:27
【问题描述】:

我对 ko.computed 感到很困惑。不确定何时使用它。我有 2 个陈述。你能解释一下有什么区别以及何时使用它们吗?

self.fullName = ko.computed(function() {
    return self.firstName() + " " + self.lastName();
});


self.fullName = function() {
    return self.firstName() + " " + self.lastName();
};

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    对于显示全名,这些选项中的任何一个都会产生相同的结果。使计算与函数更好的区别在于您可以分配读写子函数。这样,您可以使用计算值而不是单独的函数来更改 observables。

    fiddle,你可以看到如果你改变了名字或姓氏,两者都会改变。但是,如果您更改计算出的 First name 或 Last name,它也会更改该名称和函数。

    另外,请参阅computed documentation 了解更多示例。

    【讨论】:

    • 非常感谢您在 fiddle 上展示您的代码。现在我明白这两者之间的区别了。
    【解决方案2】:

    不同之处在于,当您使用 ko.computed 时,如果您绑定到 fullName,fullName 将在 firstName 或 lastName 更改时自动更新。如果没有 ko.computed,您必须自己完成这项工作。

    【讨论】:

    • 如果我错了请纠正我,如果我改变名字的值,网页会自动更新全名。如果我不使用 ko.computed,我需要调用 fullname 来更新值。
    • 显示没有区别
    • 我认为如果你不使用计算你必须使用订阅knockoutjs.com/documentation/observables.html
    猜你喜欢
    • 2014-07-26
    • 2016-03-17
    • 2019-06-18
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2017-02-15
    • 2015-06-11
    • 2013-04-10
    相关资源
    最近更新 更多