我开始学习淘汰赛js,我打算建立一个中等规模的应用程序,如迎合1000个用户和1000个条目。我想知道你们如何构建淘汰js应用程序的js文件?它就像传统的MVC文件结构,如
LIB /
应用程序/
应用程序/模型/
应用程序/视图/
应用程序/控制器/
或者你的结构不同?
答案 0 :(得分:3)
这似乎是一个非常开放的问题,因为没有“正确”的方式来构建应用程序。此外,不同尺寸的应用将从不同的结构中获得不同的好处。您可能只有几个型号,根本不需要任何文件夹。你需要几个。无论如何,我的回答。
由于你特别询问淘汰赛,这假设你只是在接受客户端的javascript,而不是服务器的代码。如果您正在讨论整个申请结构,请在您的问题中澄清这一点。
首先,Knockout没有控制器。它有ViewModels。这似乎是一种语义上的区别,但实际上并非如此。控制器相对愚蠢;他们将动作从视图路由到模型中的业务逻辑。另一方面,ViewModels很聪明;它们包含业务逻辑以及视图将使用的公共属性和方法。
模型通常不是Knockout方面的一部分。它们将在您的服务器上,并代表您的数据库表(这是一个概括,显然存在异常)。通过这两种方法,我们删除了controller
和model
目录,并留下了viewmodels
目录。
观点比较棘手。视图是您的HTML,但如果您想重用它们,它们也可以作为您的淘汰模板。为了在“视图”和“模板”之间保持分离,我将此目录称为templates
。
最后,我不会将任何内容放在lib
目录中。您的应用程序本身不是库。这是应用程序。所有这些都应该在你的公共javascript文件夹下(因为web需要访问它),但我没有看到任何理由将它推到树下。当然,您需要一个lib
目录用于其他插件,但它将由您的Knockout应用程序使用,因此lib
应该与您的应用程序处于同一级别。