你把你的knockoutjs可观察扩展放在哪里



当您将knockoutjs与requirejs一起使用并遵循MVVM模式,并且您实现了这样一个knockoutjs数组扩展时,您将把它放在哪里?

直接在使用它的ViewModel中?

或者在一个额外的javascript文件中,比如ObservableExtension.js,然后像注入自定义绑定处理程序一样注入requirej?

ko.observableArray.fn.doSomething = function(other) {
};

@RP Niemeyer评论道,我还放置了单独的绑定、扩展和视图模型。原因是它允许前端代码的模块化设计。您永远不知道什么时候需要重用功能。它还允许我专门为绑定、扩展和视图模型编写单独的单元测试,而无需测试它们之间的交互方式,基本上将它们分解为尽可能小的单元。

js
jstests
jstestsknockoutExtensionTests
jstestsjqueryExtensionTests
jstestsfirstBindingTest.js
jstestssecondBindingTest.js
jstestsfirstVmTest.js
jstestssecondVmTest.js
jsextensions
jsextensionsknockoutExtension.js
jsextensionsjqueryExtensions.js
jsbindings
jsbindingsfirstBinding.js
jsbindingssecondBinding.js
jsviewmodels
jsviewmodelsfirstVM.js
jsviewmodelssecondVM.js

我也不会将其限制为仅淘汰扩展,因为您永远不知道什么时候可能需要扩展另一个库,如jQuery,以添加更多功能。这看起来可能有很多文件需要单独加载,但有了目前的捆绑和缩小工具,在生产中你几乎不会注意到。

最新更新