使用自定义绑定、扩展器或自定义函数扩展挖空

Extending Knockout with custom bindings, extenders, or custom functions

本文关键字:自定义函数 扩展 扩展器 自定义 绑定      更新时间:2023-09-26

在扩展 Knockout 的功能时,何时适合使用自定义绑定、扩展器和自定义函数使用"fn"?选择一个而不是另一个时会影响性能?

当您尝试完成的功能涉及 UI 和数据时,您通常希望选择自定义绑定,因此您需要访问元素和一些数据来控制如何处理元素。

在这一点上,扩展器和添加到.fn之间真的没有太大区别。 在通过.fn提供共享功能之前,扩展器被添加到KO中。

这通常不是问题,但扩展器仅适用于可观察量和计算可观察量。 使用.fn,您需要向ko.subscribable.fn添加函数,以便两者都可用。 但是,在某些情况下,您的功能可能仅适用于其中一个,因此使用 ko.observable.fnko.computed.fn 将是更好的选择。

我发现扩展.fn是最干净的语法。 如果您确定要返回this或新类型(如果要包装它),那么您可以轻松地支持链接。 扩展器更明确一些,并确保类型的 API 外围应用保持精简(值得一提)。