使用自定义绑定,扩展程序或自定义函数扩展Knockout

时间:2012-04-26 13:04:47

标签: javascript performance knockout.js

在扩展Knockout的功能时,何时使用“fn”使用自定义绑定vs扩展器与自定义功能是否合适?选择一个而不是另一个会对性能产生影响吗?

1 个答案:

答案 0 :(得分:13)

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

此时,扩展程序与添加.fn之间确实没有太大区别。在通过.fn提供共享功能之前,扩展程序已稍微添加到KO。

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

我发现扩展.fn是最干净的语法。如果您确定要包装this或新类型,那么您可以轻松支持链接。扩展器更加明确,并确保类型的API表面区域保持精简(为此值得)。