65.9K
CodeProject 正在变化。 阅读更多。
Home

3 天学会 knockout - 第 1 天

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (17投票s)

2014 年 8 月 20 日

CPOL

4分钟阅读

viewsIcon

51348

downloadIcon

685

分步学习 knockout 框架 - 第 1 天。

引言

如今,大多数 Web 应用程序都是通过最大程度的客户端脚本进行开发的,因为客户端编程语言和浏览器变得越来越强大。JQuery 库主要用于客户端脚本,因为它提供了更大的灵活性、易用性和可扩展性。

在 JQuery 的基础上,构建了一个新库,我们称之为 **knockout**。

**Knockout** 在当今 Web 应用程序开发领域被广泛使用。可以说,knockout 正在击败其他 JavaScript 框架,甚至对 Asp.Net 或 MVC 等 Web 服务器架构构成了严峻的竞争。因为使用 knockout,您可以只在客户端处理所有业务逻辑和验证,您需要的是可以通过任何面向服务的技术(如 webservice、WCF、REST Service、WebAPI 等)检索或获取的数据。

我将尝试分部分介绍 knockout 的所有主题。在这篇第 1 天的文章中,我将介绍 knockout 的基本概念。 

议程 

  1. 什么是 knockout.js?
  2. 为什么使用 Knockout.js?
  3. 关于 Observable 和 Binding 的演示示例 

完成本文后,请继续阅读第 2 天的链接

第 2 天

 

什么是 knockout?

Knockout 是一个 JavaScript 库,它使我们能够开发丰富、交互式且响应式的数据驱动 UI。该库允许我们在 HTML 元素上进行声明式绑定,这意味着,当值更改时,UI 可以自动刷新,并且值可以反向反映到已绑定数据的元素上。

Knockout 主要基于 MV-VM(Model-View-ViewModel)架构模式。当我们谈论 MV-VM 时,会涉及三个组件。

**模型** – 它可以是一个实体或一组数据。这些数据可以用 JavaScript 对象表示。这些数据独立于任何 UI。

**视图** – 它是您的 UI 或一个展示数据的页面。可以是 aspx、html、php、asp。实际上,视图是代表 ViewModel 状态的 UI。

**ViewModel** – 它是模型和视图之间的中介。它聚合一个或多个模型,并借助绑定将模型信息转换为视图信息。实际上,ViewModel 会公开公共属性和方法,这些属性和方法通过声明式绑定替换视图中的模型值。

Knockout 主要用 KO 表示。

为什么使用 knockout?

Knockout 提供了各种优势——

  1. UI 自动刷新,因为我们可以将 HTML 元素与模型进行强绑定。这也可以称为依赖跟踪。
  2. 声明式双向绑定 - 一种简单易用的语法,用于将 UI 与数据模型连接起来
  3. 可扩展以创建自定义绑定
  4. 与所有最新浏览器兼容。
  5. 轻松设计客户端-服务器架构,代码量最少。没有回发问题。
  6. 创建模板
  7. 无需基于模型更改进行条件 UI 刷新
  8. 由于它是一个 JavaScript 库,因此它可以与任何其他 Web 技术(如 Asp.Net、WCF、REST 服务、WebService、WebAPI 等)协同工作。
  9. 有助于构建单页应用程序(SPA)

演示示例

让我们从一个示例开始理解 knockout。

在开始编码之前,需要进行初始设置。

  1. 从以下链接下载 knockout.js 库  http://knockoutjs.com/downloads/index.html
  2. 在您的网页中添加 js 引用
  3. script src="Scripts/knockout.js" type="text/javascript"></script>
  4. 从以下链接下载 jQuery 库  https://jqueryjs.cn/download/
  5. 在您的页面中添加 jQuery 的 js 引用。虽然没有 jQuery knockout 也可以执行,但没有 jQuery 库,knockout 就像是残缺不全的。
    <script src="Scripts/jquery-1.11.1.min.js" type="text/javascript"></script>

设置完成!

让我们使用两个输入框来捕获员工的名字和姓氏,并在标签中显示名字。看看页面效果

  1. 使用 KO 创建一个 view model。这个模型可以是一个简单的 JavaScript 对象,并使用 ko.observable() 方法设置。这有助于模型跟踪其中的任何更改。

  2. 假设我们有两个 span,我们希望分别显示 FirstName 和 LastName。使用 data-bind 属性将模型与 DOM 元素绑定

     

  3. 激活 knockout 引擎以执行。

    输出:

    在这里,如果我更改文本框中的值,当焦点从文本框移除时,相同的值就会反映到 span 中。这是因为 span 与模型绑定,而模型是一个可观察对象,即更改会被观察或跟踪。
    如果您想在按键时立即看到效果,请将属性设置为
     

    <input type ="text" name="txtFName" data-bind="value: FirstName. valueUpdate='afterkeydown'" />

     

在这里,我结束了我的第 1 天的第一篇文章。今天我们学习了 knockout 的理论知识,它的框架,并尝试创建了一个简单的示例。 

在接下来的文章中,我们将深入探讨

1) 其他类型的 observable

  • 依赖 Observable
  • Observable 数组

2) 内置绑定

  • 与文本和外观相关的绑定
  • 与表单元素和事件相关的绑定
  • 控制流绑定
  • 模板

结论

Knockout 框架是构建 Web 应用程序的新时代,它提供了强大的绑定功能,并帮助我们保持代码的整洁。希望您喜欢这篇文章。请分享您的评论,无论是好是坏。您的意见对我改进非常有价值。 

© . All rights reserved.