Javascript 两个视图一个模型,如何防止视图不必要的更新/重新提交
上下文: 两个视图A和B连接到同一模型:Javascript 两个视图一个模型,如何防止视图不必要的更新/重新提交,javascript,model-view-controller,backbone.js,redux,Javascript,Model View Controller,Backbone.js,Redux,上下文: 两个视图A和B连接到同一模型: 两者都可以更改模型状态 两者都需要在模型上更新其UI 改变 问题: 当A触发模型更改时,如何防止视图A重新渲染自身,而当B更改模型时,如何仍然允许A更新 暂定解决方案: 传递对分派事件的视图的引用,类似于event.target PS:我们没有使用React.js或不可变数据。因此,总是根据视图状态重新渲染或比较模型可能代价高昂且容易出错。我们试图遵循redux模式,使用一个包含整个应用程序状态的模型。我不确定主干网是否鼓励这样做。听起来好像视图A中
- 两者都可以更改模型状态
- 两者都需要在模型上更新其UI 改变
PS:我们没有使用React.js或不可变数据。因此,总是根据视图状态重新渲染或比较模型可能代价高昂且容易出错。我们试图遵循redux模式,使用一个包含整个应用程序状态的模型。我不确定主干网是否鼓励这样做。听起来好像视图A中发生了某种情况,将导致视图A和视图B都重新渲染,但您在不同的位置处理视图A的重新渲染,因此不希望在模型更改事件中重新渲染 如果是这种情况,我认为您需要一个视图来监听模型较小部分的更改,如(从) 或者,您可以在更改模型时使用
{silent:true}
选项使更改事件静音,然后直接在视图B上调用渲染。不过,我认为这不是一个好的解决方案
book.on({
"change:author": authorPane.update,
"change:title change:subtitle": titleView.update,
"destroy": bookView.remove
});