javascript - Backbone.js View 的适当粒度是多少?

标签 javascript model-view-controller backbone.js

我正在采用 Backbone.js 来渲染 existing large web app 的一个小 Angular .如果这一切顺利,我可以看到 Backbone.js 成长为包含整个应用程序,为有机增长的应用程序提供一些急需的结构。这就是前言。现在的问题:

我有一个选择框,允许用户选择阅读计划。 When the selection changes, the view updates some descriptive text, a calendar interface, and a little widget for marking today's readings as complete.该小部件将为今天条目中的每个阅读(一个或多个)都有一个复选框,以及一个用于继续第二天阅读的按钮。 (您可以在 the existing app 的右侧看到此接口(interface)的当前非主干版本(减去完成方案)。

每个 View 的合适粒度是多少?我已经确定了以下“繁琐的部分”:

  • 选项卡本身,包含所有包含的控件。
  • 选择框
  • 描述性文字,响应选择框
  • 响应选择框的日历
  • 响应选择框的读数小部件,包含:
    • 可选的“开始”按钮,用于激活当前计划。
    • 激活后,一个或多个复选框对应于今天条目中的个人读数。
    • 激活后,“下一步”按钮将完成今天的输入并显示下一个。

每个要点都应该有自己的 View 吗?只是主要部分(选项卡、选择框、小部件)?第一个将产生相当多的 View 。第一个似乎会导致过于复杂的 View 实现。什么最好?

注意:我意识到这可能被解释为一个非常主观的问题,但我仍然在思考 Backbone.js 和 Javascript/DOM MVC 模式,我希望更有经验的 Backbone.js 从业者有一个狭隘的“这是预期的/最有效的”。谢谢!

最佳答案

一般来说, View 的粒度将取决于在特定 UI 的复杂性和 View 过度碎片化之间找到平衡点。我可能不会将 View 用于像按钮这样小的东西(CSS 类就是您真正需要的)。

在您的特定情况下,我可能会有一个日历小部件的 View ——因此它可以很容易地在应用程序的其他地方重复使用——以及整个 Devotions 选项卡的 View 。剩下的可以通过事件绑定(bind)完成。

关于模型更新和重新渲染,Backbone 的整个想法是将关注点与 View 分开。当模型的属性发生变化时,模型会发出“更改”事件,并且当时页面上出现的任何 View 都将显示该特定模型的数据,将收到更改通知,并可以自行更新。

关于javascript - Backbone.js View 的适当粒度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463136/

相关文章:

javascript - Jquery UI slider 附加标签

javascript - 如何使用 Javascript 从自定义 505 错误中重新加载请求的页面?

javascript - polyfill.io 和 core-js 有什么区别?

javascript - SAPUI5 检查 View 中的模型属性

javascript - 调用渲染作为回调时访问 View 属性

javascript - 将 contenteditable 字段序列化为 JSON 对象以保存到模型的最佳方法是什么?

javascript - 隐藏具有相同类或 ID 的第二个元素

.net - 如何为使用 winforms 的 Controller 类编写单元测试?

c# - 无法使用 SetModelValue 修改 ModelState

javascript - 渐进增强 - Node.js, Backbone.js