KnockoutJS - 应用程序

KnockoutJS 广泛用于单页应用程序 - 能够通过单个页面加载动态检索所有必要数据的网站,从而减少服务器往返次数。

KnockoutJS 是一个客户端框架。这是一个 JavaScript 库,可以非常轻松地将 HTML 绑定到域数据。它实现了一种称为 Model-View-ViewModel (MVVM) 的模式。Observables 是 KnockoutJS 的神奇成分。由于 Observable 属性,所有数据都保持同步。

架构

KnockoutJS Architecture

视图

视图只不过是使用 HTML 元素和 CSS 样式创建的用户界面。

您可以使用 KnockoutJS 将 HTML DOM 元素绑定到数据模型。它使用"数据绑定"概念在 View 和 ViewModel 之间提供双向数据绑定,这意味着在 UI 中所做的任何更新都会反映在数据模型中,并且在数据模型中所做的任何更改都会反映在 UI 中。可以借助 knockoutJS 创建自更新 UI。

ViewModel

ViewModel 是一个 JavaScript 对象,它包含表示数据所需的属性和函数。View 和 ViewModel 通过 HTML 中使用的声明性数据绑定概念连接在一起。这使得更改 HTML 而不更改 ViewModel 变得容易。KnockoutJS 通过使用 Observables 负责它们之间的自动数据刷新。

数据同步是通过将 DOM 元素绑定到数据模型来实现的,首先使用数据绑定,然后通过使用 Observables 刷新这两个组件。由于这种数据同步,依赖关系跟踪是自动完成的。无需额外的编码即可实现它。 KnockoutJS 允许在显示和底层数据之间建立直接连接。

您可以为应用程序特定行为创建自己的绑定(称为自定义绑定)。这样,Knockout 可以直接控制如何将数据转换为 HTML。

模型

模型是服务器上的域数据,它会在从 ViewModel 发送/接收请求时进行操作。

数据可以存储在数据库、cookie 或其他形式的持久存储中。KnockoutJS 不担心如何存储数据。由程序员负责在存储的数据和 KnockoutJS 之间进行通信。

大多数情况下,数据是通过 Ajax 调用保存和加载的。