javascript - 使用自定义绑定(bind)、扩展器或自定义函数扩展 Knockout

标签 javascript performance knockout.js

在扩展 Knockout 的功能时,什么时候使用自定义绑定(bind)、扩展程序和使用“fn”的自定义函数是合适的?选择一个而不是另一个时是否会对性能产生影响?

最佳答案

当您尝试实现的功能同时涉及 UI 和您的数据时,您通常会希望选择自定义绑定(bind),因此您需要访问一个元素并且通常需要一些数据来控制对该元素的操作。

在这一点上,扩展器和添加到 .fn 之间确实没有太大区别。在可通过 .fn 获得共享功能之前,扩展器已添加到 KO。

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

我发现扩展 .fn 是最简洁的语法。如果您确定返回 this 或包装它的新类型,那么您可以轻松支持链接。扩展器更明确一些,并确保类型的 API 表面区域保持精简(对于它的值(value))。

关于javascript - 使用自定义绑定(bind)、扩展器或自定义函数扩展 Knockout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10334023/

相关文章:

javascript - jQuery 解除绑定(bind)和绑定(bind)

javascript - CakePhp:使用 CakePHP HttpClient 调用 API 时,响应正文中出现错误

javascript - array.prototype.includes 与 set.prototype.has 的时间复杂度

html - 根据 HTML 中同一行的另一个单元格中的值更改表格单元格的 CSS

javascript - 将值传递给具有多个默认参数的函数

javascript - AngularJS 服务仅在第一次使用 Controller 时运行

performance - 在 Intel Fortran 中编译单个源文件与多个源文件

R性能幂函数

javascript - 使用 AJAX 内部函数绑定(bind)可观察数组

javascript - ES6 和 Knockout 的“this”范围