我承认这是一个非常神秘的问题。
我正在寻找基于GUI事件更新视图的参考/最佳实践。 基本上我看到了两种不同的方法:
listenTo
,将被调用listenTo
,将被调用第一种方法对我来说似乎最干净:它可以在模型上使用验证规则,然后更改DOM并且流程感觉更好。但是,我找不到任何好的参考来支持这一点。这里通常被认为是最佳做法?
答案 0 :(得分:0)
我不知道关于该主题的整体互联网协议是什么,但是在具有复杂视图的相当大的Backbone应用程序上工作,第一种方法已被证明是最易维护的。
一种看待它的方法是,正如您所知,Backbone的视图和Backbone的路由器有点共享标准MVC中的实际控制器(比如Rails)的工作负载。这意味着在视图中,您通常会有逻辑将GUI事件(单击X)转换为模型更改(执行Y)以及将模型更改(Y之后的新状态)转换为DOM更改的逻辑。这并不意味着逻辑需要在同一个地方,这是两个不同的事情。您的模型可能在多个视图之间共享,无论更改源自何处,您都需要View进行响应。您也可以等待服务器回答任何问题,因此,DOM更新无论如何都会在回调中。
我最近经常使用的模式是使用_renderUpdating()更新DOM以让用户知道他的操作已经考虑到了(在触发更改的任何地方附近添加一个微调器),但是我让事件在服务器返回新模型后进行实际的重新渲染。
在简单的情况下,没有任何东西阻止你使用第二种方法,但随着你的应用程序的增长,你会非常高兴不仅仅有一个渲染()可以删除所有内容(包括子视图)而你我会看到在视图之间有一个干净的中断 - > model(控制器的作用)和模型 - >观点以提供更大的灵活性。