Javascript 带Spine.js的真实世界webapp结构
我使用Spine.js和CoffeeScript研究JavaScript MVC已有相当一段时间了。我开发RubyonRails已经有一段时间了,所以我了解模型、视图和控制器应该分别处理什么(基于我对它的经验)。但是在Rails中,我们已经知道(一般来说)每个控制器基本上是控制一组视图(或页面)的东西,并且一次处理一个或多个模型。(也许吧,如果我错了,请纠正我,因为我还不是职业选手,我必须承认) 然而,我发现在建筑方面,脊椎有一个完全不同的概念。我阅读了它的文档并深入到它的示例应用程序中。不幸的是,所有Spine示例应用程序都展示了如何处理单页应用程序,而现实世界中“更大”的应用程序将不再如此。(如果Spine仅用于“单页应用程序”,请更正我的问题) 假设有一个网站(或应用程序)由许多页面/部分/模块组成,如下所示: 1-主页,显示例如基于缩略图的列表 2-联系人页面 3-当前用户的配置文件管理页面(普通CRUD) 每个页面的主结构(或布局)与标题中的相同,标题中包含指向上述页面的链接、搜索输入字段和注销链接(我已经知道登录页面应该是单独的,所以我不会在这里询问身份验证) 这里棘手的部分是,我真的不知道如何把所有的部分联系在一起,我一直在问自己一些问题,在谷歌和StackOverflow上搜索,但没有明确的答案 1-“spine应用程序必须”仅在一个页面中?我的意思是,有固定的页眉和页脚,但有一个动态内容DIV,它根据用户单击页眉的哪个选项卡加载和卸载视图?或者我应该将每个页面视为一个独立的spine应用程序 2-我是否在一个页面中有多个控制器?例如,应用程序主控制器和导航控制器(标题) 3-是否每个控制器都应该处理一个模型,或与之相关的模型?(在示例中,它们之间始终存在1:1的关系,如任务模型和任务控制器) 4-在我的应用程序中,我应该在哪里存储接口相关的状态变量。我应该创建一个“记住”当前用户的模型,或者例如突出显示哪个选项卡以供进一步参考?或者我应该将它们存储到控制器中吗 5-如果它是一个单页应用程序(但是有很多部分或模块),我应该为这个页面中的每个加载部分都配备一个控制器吗 我知道这些对于更有经验的程序员来说可能是微不足道的问题,但我真的不知道从哪里开始。因此,如果有人能引导我走上正确的轨道,那就太棒了 提前谢谢Javascript 带Spine.js的真实世界webapp结构,javascript,model-view-controller,structure,Javascript,Model View Controller,Structure,我使用Spine.js和CoffeeScript研究JavaScript MVC已有相当一段时间了。我开发RubyonRails已经有一段时间了,所以我了解模型、视图和控制器应该分别处理什么(基于我对它的经验)。但是在Rails中,我们已经知道(一般来说)每个控制器基本上是控制一组视图(或页面)的东西,并且一次处理一个或多个模型。(也许吧,如果我错了,请纠正我,因为我还不是职业选手,我必须承认) 然而,我发现在建筑方面,脊椎有一个完全不同的概念。我阅读了它的文档并深入到它的示例应用程序中。不幸的
我认为这是一个很好的问题。我的回答很宽泛,所以请容忍我 我的回答的实质是,您需要熟悉其他框架,以便了解您选择的框架试图解决的问题。你的问题是可以理解的。另一些人一直在为缺乏一种“适当”的方式来做一些普通的事情而挣扎。根据示例、包装器/扩展和替代框架创建了解决方案。也许,你应该寻找与Spine相关的信息,它启发了Spine,并且仍然与Spine相似 正如您所说,您熟悉Rails的MVC。然后是Spine的MVC方法,这是完全不同的。这应该给你一个提示,MVC(或通常的MV*是一个广泛的概念)有着非常不同的实现。好的,您可能会认为Rails毕竟是一个基于请求的服务器端框架,而Spine是一个基于客户端事件的框架,所以这种差异是可以理解的。嗯,客户端JavaScript框架之间也没有统一性。例如,所提到的主干具有所谓的视图,它们实际上扮演控制器的角色。所以我猜Spine的创建者做的一件事就是为了清晰起见将视图重命名为控制器。JavaScript的MV*详细解释如下。还有很多JavaScript框架 所以脊椎和脊骨的一个“问题”是它们不支配任何架构。换句话说,他们不够固执己见。你可以随心所欲地使用它们,这一事实让你感到沮丧。下面我尝试回答您的问题: