Javascript 敲除js应用程序的正确文件结构是什么?

Javascript 敲除js应用程序的正确文件结构是什么?,javascript,model-view-controller,mvvm,knockout.js,Javascript,Model View Controller,Mvvm,Knockout.js,我开始学习knockout js,并计划构建一个中等规模的应用程序,比如满足1000个用户和1000个条目的需求。我想知道你们是如何为淘汰js应用程序构建js文件的?它就像传统的MVC文件结构一样 解放党/ 应用程序/ 应用程序/模型/ 应用程序/视图/ 应用程序/控制器/ 还是以不同的方式构造它?这似乎是一个非常开放的问题,因为没有“正确”的方法来构造应用程序。此外,不同尺寸的应用程序将从不同的结构中获得不同的好处。您可能只有几个型号,根本不需要任何文件夹。你需要几个。不管怎样,请继续我的回答

我开始学习knockout js,并计划构建一个中等规模的应用程序,比如满足1000个用户和1000个条目的需求。我想知道你们是如何为淘汰js应用程序构建js文件的?它就像传统的MVC文件结构一样

解放党/

应用程序/

应用程序/模型/

应用程序/视图/

应用程序/控制器/


还是以不同的方式构造它?

这似乎是一个非常开放的问题,因为没有“正确”的方法来构造应用程序。此外,不同尺寸的应用程序将从不同的结构中获得不同的好处。您可能只有几个型号,根本不需要任何文件夹。你需要几个。不管怎样,请继续我的回答

由于您是专门询问knockout,因此假设您只了解客户端javascript,而不了解服务器的代码。如果您谈论的是整个应用程序结构,请在问题中澄清这一点

首先,Knockout没有控制器。它有可视模型。这似乎是一种语义上的区别,但事实并非如此。控制器相对来说比较笨;它们将操作从视图路由到模型中的业务逻辑。另一方面,ViewModels是智能的;它们包含业务逻辑以及视图将使用的公共属性和方法

模型通常不是事物的决定性因素。它们将位于您的服务器上,并表示您的数据库表(这是一种泛化,显然存在异常)。使用这两个目录,我们消除了
控制器
模型
目录,剩下的是
视图模型
目录

观点更为棘手。视图是您的HTML,但如果您想重用它们,它们也可以是您的淘汰模板。为了将“视图”和“模板”分开,我将此目录称为
templates


最后,我不会将这些内容放在
lib
目录中。您的应用程序本身不是一个库。这是应用程序。所有这些都应该放在您的公共javascript文件夹下(因为web需要访问它),但我不认为有任何理由将其进一步向下推。当然,其他插件需要一个
lib
目录,但它将被你的淘汰应用程序使用,因此
lib
应该与你的应用程序处于同一级别。

我将jquery、淘汰和其他依赖项放在lib文件夹中,我的逻辑放在model文件夹中。可以吗?此外,html文件是视图吗?“OK”是相对的。如果它对你有用,并且让你有条理,那么它可能是好的。HTML文件的去向实际上取决于服务器设置的类型。我不能回答这个问题。