Backbone.js 视图的合适粒度是多少?

2024-03-10

我正在采用 Backbone.js 来渲染一个小角落现有的大型网络应用程序 http://www.esvonline.org。如果进展顺利,我可以看到 Backbone.js 不断发展以涵盖整个应用程序,为有机增长的应用程序提供一些急需的结构。这就是前言。现在针对问题:

我有一个选择框,允许用户选择阅读计划。当选择发生变化时,视图会更新一些描述性文本、日历界面和一个用于将今天的阅读标记为完成的小部件。该小部件将为今天条目中的每个阅读(一个或多个)提供一个复选框,以及一个用于继续第二天阅读的按钮。 (您可以在右侧看到该接口当前的非 Backbone 版本(减去完成方案)现有的应用程序 http://www.esvonline.org.

每个视图的合适粒度是多少?我已经确定了以下“棘手的部分”:

  • 选项卡本身,包含所有包含的控件。
  • 选择框
  • 描述性文本,响应选择框
  • 响应选择框的日历
  • The readings widget, which responds to the select box, and contains:
    • (可选)“开始”按钮,用于激活当前计划。
    • 激活后,一个或多个复选框对应于今天条目中的各个读数。
    • 激活后,“下一步”按钮将完成今天的输入并显示下一个。

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

Note:我意识到这可以被解释为一个非常主观的问题,但我仍然专注于 Backbone.js 和 Javascript/DOM MVC 模式,并且我希望有一个狭窄的“这是预期的/效果最好的” “来自更有经验的 Backbone.js 从业者。谢谢!


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

在您的特定情况下,我可能会有一个日历小部件的视图——这样它就可以在应用程序的其他地方轻松地重用——以及整个“奉献”选项卡的视图。其余的可以通过事件绑定来完成。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Backbone.js 视图的合适粒度是多少? 的相关文章

随机推荐

  • Filesystemwatcher 导致“目录 C:\ 中一次发生太多更改错误”

    像其他一些人一样 当文件系统观察程序执行其工作时 我收到错误 目录 C 中一次错误太多更改 现在如果是c 显然有很多变化 但在这种特殊情况下 我设置了以下参数 Path C Filter test1 txt NotifyFilter Not
  • 检查内容是否溢出

    我需要知道我的内容何时溢出我的 div 如果是这样 我将放置一个链接 以便在新窗口中打开包含所有内容的页面 Cheers DalexL 使用 jQuery 和文本溢出时的选取框文本 https stackoverflow com quest
  • 如何控制RDD分区的首选位置?

    有没有办法手动设置RDD分区的首选位置 我想确保在特定机器上计算特定分区 我使用数组和 Parallelize 方法从中创建 RDD 另外我没有使用 HDFS 文件位于本地磁盘上 这就是为什么我要修改执行节点 有没有办法手动设置RDD分区的
  • 为 Monotouch 对话框元素设置自定义字体

    有没有办法在实例化 Monotouch Dialog 类时设置字体 Section This is the header 这将使用带阴影的默认蓝色文本进行渲染 但我找不到设置该字体的位置 有没有办法覆盖它使用的字体和颜色 我为那些希望替换整
  • 如何复制范围并仅将包含值的行粘贴到另一个工作表中?

    首先我要说的是 我意识到简单的解决方案是过滤列 取消选中空白 将值复制并粘贴到新列中 问题在于 对于不 精通技术 的教师来说 没有什么是简单的 话虽如此 我正在将同一个谷歌电子表格中的多个工作表中的数据提取到 主 工作表中 我有一个名为 可
  • Autotools 库和目标文件输出控制

    我的目标是将所有目标文件构建在 objs 目录中而不是 Makefile 的根目录中 并将二进制文件 和库 复制到项目的bin 目录 但我一直无法找到任何资源来解释如何做到这一点 我该怎么做呢 这是我的configure ac和src Ma
  • Java JCE 无限强度加密安全策略文件

    JRE 更新后 JCE 策略文件 位于 java home lib security 中 是否会被标准强度策略文件覆盖 或者这些在 JRE 更新中是否保留 编辑 有谁知道 Mac OS X JRE 是否附带无限的策略文件 Thanks Jo
  • 如何在 React Native 中测量我的应用程序的数据使用情况?

    我有一个反应本机应用程序 我想测量每个用户的数据使用情况并收集它们以供以后优化 我看到原生 android 的旧问题表明 trafficStats 可能会通过 UUID 提供统计信息 React Native 有哪些可能性 使用react
  • 使用 applicationwillenterforeground 显示密码屏幕

    在 iOS4 之前 我的应用程序的初始视图控制器将检查 viewWillAppear 中的密码开 关设置变量 如果设置为打开 则显示一个模式密码屏幕 该屏幕将一直保留在那里 直到输入正确的密码或按下主页按钮 对于 iOS4 如果我的应用程序
  • 带参数的 DataTables ajax.reload()

    我正在使用数据表服务器端在 Angular2 项目中 我尝试在进行更改后重新加载表 并且我想通过 AJAX 将这些更改作为 POST 中的参数传递 问题是 DataTables 总是得到options来自初始化的对象 而不是更新版本新参数
  • 是否可以选择使用 Flash 10.2 光标,同时仍与 Flash 10.0 兼容?

    我有一个 Flash 应用程序需要 Flash 版本 10 0 才能运行 我想添加 Flash 10 2 中引入的本机鼠标光标 但我不想要求所有用户都升级 并且我不想编译我的应用程序的两个单独版本 有什么方法可以在运行时检测光标是否可用 然
  • 在 Flutter 中将字符串解析为小部件

    我想将以下字符串解析为其等效的 Flutter 小部件 String fetchedFromServer Container child Text Hello 我想从网络服务器接收布局并将它们解析为真正的小部件 我怎样才能在 Dart Fl
  • 如何根据用户区域设置设置数字和日期的格式?

    我需要一种根据用户的区域设置自动格式化日期和数字对象的方法 到目前为止 我一直在使用toLocaleString 日期函数 对于数字来说 toLocaleString 也是可用的 但是正如您在jsFiddle http jsfiddle n
  • SqlAlchemy:如果对象尚不存在,则创建对象?

    我是 SQLAlchemy 的新手 我目前有 ev model EnumerationValue key key level 2 code level 2 ev keyvalues key parent level 1 model Sess
  • 简单的Java计算器(需要小数帮助)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 好的 这是我的简单 java 计算器 一切正常 我只需要允许小数的帮助 非常感谢帮助我的人 这是一个学校项目 所以我需要很快得到答案 imp
  • 安装旧版本的 Mono

    今天我的 Ubuntu 将 Mono 更新到了 4 2 1 102 它不会允许我绝对需要运行的某个程序 如何将其降级到 4 0 5 1 我努力了 sudo apt get install mono complete 4 0 5 1 那是行不
  • alt 属性可以用于输入类型按钮吗

    我想询问输入标签中的 alt 属性 正如我在许多网站上发现的那样 当我们输入图像类型时 会使用 alt 属性 1 可以用于输入型按钮吗
  • 如何使用最新版本的 R RDCOMClient 从 Outlook 发送邮件?

    当我使用最新版本的 R RDCOMClient 包发送 Outlook 电子邮件时 它显示错误 相同的代码 library RDCOMClient init com api OutApp lt COMCreate Outlook Appli
  • 通过spring AOP + Aspectj进行异常处理

    在我的项目中 我有一个域层 它基本上是 POJO 和一个位于域层之上的 Spring 控制器 服务层 我还有一个位于服务和域之间的 AOP 层 我的域层正在抛出业务异常 这些异常现在正在服务层中处理 但是我想更改它 以便从领域层抛出的异常将
  • Backbone.js 视图的合适粒度是多少?

    我正在采用 Backbone js 来渲染一个小角落现有的大型网络应用程序 http www esvonline org 如果进展顺利 我可以看到 Backbone js 不断发展以涵盖整个应用程序 为有机增长的应用程序提供一些急需的结构