在扩展 Knockout 的功能时,什么时候使用自定义绑定(bind)、扩展程序和使用“fn”的自定义函数是合适的?选择一个而不是另一个时是否会对性能产生影响?
最佳答案
当您尝试实现的功能同时涉及 UI 和您的数据时,您通常会希望选择自定义绑定(bind),因此您需要访问一个元素并且通常需要一些数据来控制对该元素的操作。
在这一点上,扩展器和添加到 .fn
之间确实没有太大区别。在可通过 .fn
获得共享功能之前,扩展器已添加到 KO。
这通常不是问题,但扩展器只适用于可观察对象和计算可观察对象。使用 .fn
您需要将函数添加到 ko.subscribable.fn
以便两者都可用。但是,在某些情况下,您的功能可能只适用于其中一个,因此使用 ko.observable.fn
和 ko.computed.fn
将是更好的选择。
我发现扩展 .fn
是最简洁的语法。如果您确定返回 this
或包装它的新类型,那么您可以轻松支持链接。扩展器更明确一些,并确保类型的 API 表面区域保持精简(对于它的值(value))。
关于javascript - 使用自定义绑定(bind)、扩展器或自定义函数扩展 Knockout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10334023/