Backbone.js 存储主干视图的最佳方法

Backbone.js 存储主干视图的最佳方法,backbone.js,Backbone.js,我已经构建了我的第一个主干应用程序,非常喜欢主干提供的结构。然而,我发现自己有一些小烦恼,我相信其他人已经找到了解决办法 因此,目前我创建了一个文件结构,如 models index.js user.js views index.js user.js 因此,在我的视图文件夹中的'index.js'中,我当前拥有所有视图,假设我拥有 headerView footerView buttonView 等等 因此,我目前在一个与一个页面应用程序相关的

我已经构建了我的第一个主干应用程序,非常喜欢主干提供的结构。然而,我发现自己有一些小烦恼,我相信其他人已经找到了解决办法

因此,目前我创建了一个文件结构,如

models
      index.js
      user.js
views
      index.js
      user.js
因此,在我的视图文件夹中的'index.js'中,我当前拥有所有视图,假设我拥有

headerView
footerView
buttonView
等等

因此,我目前在一个与一个页面应用程序相关的通用“视图js文件”中有多个“视图”。问题是它不是直观地找到一个特定的视图,我打开一个编辑器,找到正确的视图


在其他MVC中,我会将每个视图存储在它自己的唯一文件中,并根据需要使用它们——其他用户在这里也会这样做吗?我想我关心的是有多个单独的js文件?我使用minify项目缩小js,这样就可以创建一个组,但不知道其他人做了什么?

为了更好地导航,将每个对象分离到分层文件夹中的视图/模板对中是值得的。然后,只需在视图中构造子对象并传递el元素。通过这种方式,您可以根据需要在整个项目中重用每个对象。

将每个对象分离到分层文件夹中的视图/模板对中,以获得更好的导航效果。然后,只需在视图中构造子对象并传递el元素。这样,您可以根据需要在整个项目中重用每个对象。

我建议您查看一下
require.js
。这是一个教程,应该让你开始

核心思想如下

  • 每个模型、视图、集合、路由器,无论是什么,都驻留在自己的文件中,称为
    模块
  • 在每个模块的顶部定义其依赖项,这意味着新模块需要加载哪些其他模块才能工作
  • require.js加载依赖项,并通过您的自定义变量保证访问
定义(例如childView.js)

重用(例如parentView.js)


如果您在模块加载语法方面遇到问题,那么变体可能是您的朋友。

我建议您查看一下
require.js
。这是一个教程,应该让你开始

核心思想如下

  • 每个模型、视图、集合、路由器,无论是什么,都驻留在自己的文件中,称为
    模块
  • 在每个模块的顶部定义其依赖项,这意味着新模块需要加载哪些其他模块才能工作
  • require.js加载依赖项,并通过您的自定义变量保证访问
定义(例如childView.js)

重用(例如parentView.js)


如果您在模块加载语法方面遇到问题,那么这个变量可能是您的朋友。

谢谢您的回答-我不确定是否完全理解,您可以详细说明一下吗?您可以通过在构造函数中指定rendering元素来从任何视图创建和呈现子视图:
var childView=new childView({el:'.divToRenderChild')。render()有关使用视图的更多信息可以在此处找到:[谢谢您的回答-我不确定是否完全理解,您可以详细说明吗?您可以通过在构造函数中指定rendering元素来从任何视图创建和呈现子视图:
var childView=new childView({el:'.divToRenderChild')。render()
有关使用视图的更多信息,请参见此处:[非常感谢-require似乎是一种方法,尽管语法也需要一点使用!非常感谢-require似乎是一种方法,尽管语法也需要一点使用!
define([
    'jQuery',
    'Underscore',
    'Backbone'
], function($, _, Backbone){
     return Backbone.View.extend({
         //your usual view methods and properties
     });
});
define([
    'jQuery',
    'Underscore',
    'Backbone',
    'pathToChildView/childView.js'
], function($, _, Backbone, ChildView){
     return Backbone.View.extend({
         // your usual view methods and properties
         // + access to your ChildView Modul
     });
});