在 MVC 中,“模型”只是数据的代码表示(例如,在 ASP.NET MVC 中,它是一个具有相应字段的类)。
然而,在 Knockout(使用 MVVM)中,我看到带有字段的对象称为“ViewModel”。来自官方 KO 文档:
模型:您的应用程序存储的数据。此数据代表您的业务领域中的对象和操作(例如,可以执行汇款的银行账户)并且独立于任何 UI。使用 KO 时,您通常会通过 Ajax 调用一些服务器端代码来读取和写入这些存储的模型数据。
视图模型:UI 上数据和操作的纯代码表示。例如,如果您正在实现一个列表编辑器,您的视图模型将是一个包含项目列表的对象,并公开添加和删除项目的方法。
从示例中可以看出,ViewModel 是具有字段的对象,用于保存数据,这通常由 MVC 中的 Model 完成:
var myViewModel = {
personName: ko.observable('Bob'),
personAge: ko.observable(123)
};
所以我在这里有点迷路了。Knockout.js 域中的“模型”和“视图模型”到底是什么意思?