gpt4 book ai didi

javascript - 将数据绑定(bind)到 View 中——是将数据从父 View 向下传递到子/孙 View 还是在创建 View 时初始化/查询数据更好?

转载 作者:行者123 更新时间:2023-11-30 20:58:09 28 4
gpt4 key购买 nike

我正在从事 Backbone/Marionette 项目。该项目实现了一种在从服务器加载数据后将数据缓存在本地内存中的方法。因此,可以在项目内随时随地访问数据。

这让我想知道在我的案例中填充数据以查看的更好方法是什么:

const ChildView = marionette.View.extend({/*...*/});

const ParentView = marionette.View.extend({
// ...
onRender() {

// 1: pass data to child view from parent view
const childView = new ChildView({
data: this.options.data,
}));

// 2: initialize data when creating new child view
const childView = new ChildView({
data: SomeModel.new({/* some properties */}),
}));
},
// ...
});

new ParentView({
data: SomeModel.new({/* some properties */}),
}).render();

这两种方法都可以正常工作。然而,项目 View 结构非常深且复杂,所以我更喜欢第二种方式,因为对于第一种方式,我需要上下多次检查 data 是什么以及它来自哪里。

你觉得这个方法会不会有什么可能的问题?

最佳答案

我更喜欢第一种方式,将数据从父级传递给子级,但这取决于您的 View 在做什么。

对我来说,共享数据对象的一大优势是在一个 View 中更新它会在所有其他 View 中更新它(如果您传递现有的 Backbone 模型或任何对象作为数据,这将起作用>).这可以节省很多工作...当用户更新他们的背景颜色时(例如),您可以在 BackgroundColorChoose View 中更新它一次,并且知道它已在其他任何使用数据的地方更新。

从某种意义上说,数据来自何处并不重要,重要的是它代表什么(因为它可以从您的任何 View 中访问/修改)。

我可以想象这种方法不好的场景,但我发现它是一个很好的起点(并且避免了信任浏览器缓存的需要)

关于javascript - 将数据绑定(bind)到 View 中——是将数据从父 View 向下传递到子/孙 View 还是在创建 View 时初始化/查询数据更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47436548/

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