我的 backbone.js 项目是否需要文件中的组件,或者这只是一个约定?

Does my backbone.js project require component on a file or is that just a convention?

我继承了一个 backbone.js 项目。该项目的约定似乎是将每个模型、视图和控制器放在其自己的文件中。

当我查看 this tutorial, (hello backbone.js) 时,他们使用将控制器和视图全部放在一个文件中的约定。

现在我对 JavaScript 的感觉是,它只会执行 reader 和求值器前面的任何内容,无论它在哪里。

我的问题是:我的 backbone.js 项目是否需要文件中的组件,或者这只是一个约定?

不,Backbone 不介意每个组件是在一个单独的文件中还是全部在一个文件中。你是对的 JavaScript 只会执行给它的东西。我假设这是 运行 在浏览器中,并且以前的开发人员以某种方式通过 XHR 请求加载各个组件(或者作为构建步骤连接到一个大的单个应用程序文件中?)。

处理此问题的唯一惯例与适用于任何大型应用程序结构的惯例相同。如果您有很多视图和模型(也许还有路由器!),您应该将它们拆分为它们自己的 "models/" 、 "views/" 目录结构,就像使用 rails 应用程序一样(或者你可能使用的任何东西)。

如果代码不多,将所有应用程序代码放在一个文件中肯定没有任何内在错误。它很好,很简单,不需要很多设置来加载所有组件。请记住维护并考虑那些可能会在您之后选择它的开发人员!

值得一提的是,如果您想通过缩小和串联进行额外的优化,那么拥有单独的文件会增加复杂性,但不存在尚未解决的问题。

如果您想要更多的模块化代码,您甚至可以更进一步添加 RequireJS 或 Browserify(或者 ES6 模块,如果您有勇气!)。