gpt4 book ai didi

javascript - 将多个 View 模型传递给组件 - 性能问题?

转载 作者:行者123 更新时间:2023-11-29 21:25:22 24 4
gpt4 key购买 nike

使用 knockout.js 组件我想知道将多个 View 模型传递给一个组件而不是一个组件时性能是否会受到影响。

具有以下内容:

function masterViewModel(){
this.demo = new demoViewModel().init();
this.demo2 = new demo2ViewModel().init();
this.demo3 = new demo3ViewModel().init();
this.demo4 = new demo4ViewModel().init();
this.demo5 = new demo5ViewModel().init();
this.demo6 = new demo6ViewModel().init();
}

var mm = new masterViewModel();
ko.applyBindings(mm, $(':root').get(0));

我正在考虑将整个 masterViewModel 变量传递给我的组件,以便能够从中访问所有 View 模型:

ko.components.register(element, {
viewModel: { instance: mm },
template: { require: 'text!views/myComponent.html' },
});

如果我这样做而不是仅仅传递一个 View 模型,性能会受到不良影响吗?

ko.components.register(element, {
viewModel: { instance: mm.demo3 },
template: { require: 'text!views/myComponent.html' },
});

最佳答案

register 选项 1 和 2 之间会有明显的性能差异吗?不。仅使用您提供的代码,这两个选项几乎相同,除了 . 运算符的一个实例。可以忽略不计。

Knockout 不会 AFAIK 遍历整个 View 模型对象图以采取行动(例如订阅可观察到的变化),它只是保留对 View 模型实例的引用。

除了对问题的非常直接的回答:性能取决于上下文。如果您不确定哪个选项更快:race your horses .

关于javascript - 将多个 View 模型传递给组件 - 性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37578431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com