我是否总是过度使用Knockout映射插件来完成我的视图模型?

9 浏览
0 Comments

我是否总是过度使用Knockout映射插件来完成我的视图模型?

我仍在学习正确使用Knockout,发现自己很快就能远离每次设置视图模型时都要输入ko.observable,而是只需定义一个对象字面量,并通过映射插件传递它,例如:

var viewModel = ko.mapping.fromJS(data);

或者至少,将所有数据都放入viewModel的一个属性中,例如:

var viewModel = { 
    ... 事件等... , 
    "data": ko.mapping.fromJS(data)
}

老实说,我这样做的主要原因是为了避免重复输入ko.observableko.observableArray。我只是想弄清楚这是否是一个好的方法,是否有任何不使用具体的var x = ko.observable()声明的缺点。此外,我所有的操作都是在加载时完成的,而不是响应任何ajax调用等,从我所了解的来看,这就是映射插件的设计目的。

在您使用Knockout的工作中,您是否仍然手动逐个声明observables,还是采用了我使用的mapping.fromJS方法?频繁使用映射插件是否有任何具体的缺点?

编辑:

具体示例

在这篇文章中,Steve通过以下方式设置他的viewModel:

var initialData = [ { ... } , { ... } ]; // 来自序列化器的JSON
var viewModel = {
    gifts : ko.observableArray(initialData)
};

通常,我也会在这种情况下使用ko.mapping.fromJS,特别是为了确保数组中的对象也被转换为observables。看他的做法,我觉得我的方法似乎有点过头,并且增加了一些不必要的开销。

0