npm 包 knockout-mapping 使用教程

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

前端 JS 框架 knockout.js 是一个流行的 MVVM 框架,它能够将数据模型与页面元素绑定,使得数据和 UI 实现了双向绑定。同时,npm 包 knockout-mapping 扩展了 knockout 的能力,可以实现 JS 对象与 knockout view model 之间的自动映射。

本文将详细介绍如何使用 npm 包 knockout-mapping,包括安装、初始化、使用及其相关知识点。本文适用于使用 knockout.js 的开发者。

安装 knockou-mapping

使用 npm 包管理器即可轻松安装 knockout-mapping:

--- ------- ---------------- ------

其中,--save 表示将这个包添加到项目依赖中。

初始化

在使用 knockout-mapping 之前,需要引入 knockout 和这个库:

------- -------------------------------------------------------------------------------------
------- -----------------------------------------------------------------------------------------------------

这里使用的第二个 JS 链接就是 knockout-mapping 库。将他们引入到页面中后,我们就可以在 JS 中进行初始化:

----- ------- - ----------------------------
----- --------- - ----------------
  ----- ------
  ---- ---
  -------- -
    --------- ----------
    ----- ----------
    ------- --------- ---------
  --
  -------- ----------- --------
---

----------------------------

在这里,使用 mapping.fromJS() 将一个普通 JS 对象转化成了 knockout view model。返回的结果就是一个 knockout view model。这个 view model 赋值给 ko.applyBindings(),意味着数据已经绑定到 DOM 上,同时所有对 view model 的修改都会同步修改到 DOM。这就是 knockout 的核心机制。

使用

knockout-mapping 主要有 3 个函数:

  1. mapping.fromJS():将一个普通 JS 对象转换为一个 knockout view model;
  2. mapping.toJS():将一个 knockout view model 转换为一个 JS 对象;
  3. mapping.fromJSON():将一个 JSON 对象转换为一个 knockout view model。

下面展示一些具体的使用例子。

对 view model 进行 CRUD 操作

----- ------- - ----------------------------
----- --------- - ----------------
  --------- --
---

-------- ---------------- ---- -
  -------------------------
    ----- -----
    ---- ---
  ---
-

-------- -------------------- -
  -------------------------------- ---
-

----------------------------

在这里,我们使用 push()splice() 来修改 view model,这两个函数都是针对数组的。当我们使用 push() 添加一个元素时,knockout.js 会自动刷新 DOM,而当我们使用 splice() 删除一个元素时,也会自动刷新 DOM。

将 view model 转化为 JSON

----- ------- - ----------------------------
----- --------- - ----------------
  ----- ------
  -------- -
    --------- ----------
    ----- ----------
    ------- --------- ---------
  --
  -------- ----------- --------
---

----- ---- - --------------------------
------------------

以上代码输出结果如下:

-
  ------- ------
  ---------- -
    ----------- ----------
    ------- ----------
    --------- --------- ---------
  --
  ---------- ----------- --------
-

将 JSON 转化为 view model

----- ------- - ----------------------------
----- ---- - -
  ------- ------
  ---------- -
    ----------- ----------
    ------- ----------
    --------- --------- ---------
  --
  ---------- ----------- --------
--

----- --------- - -----------------------
----------------------------

以上代码的 viewModel 就是一个 knockout 视图模型了。

总结

本文详细介绍了怎样通过 npm 包 knockout-mapping 将 JS 对象和 knockout view model 进行映射,同样介绍了 knockout-mapping 的常用函数。最后我们通过使用例子,展示了如何对 view model 进行 CRUD 操作,以及如何在 view model 和 JSON 之间进行转换。

希望这篇文章可以帮助大家在开发过程中更加方便地使用 knockout.js,同时了解 knockout-mapping 的使用方法。祝大家使用愉快!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedb716b5cbfe1ea0611725


猜你喜欢

  • npm 包 lively-fs-helper 使用教程

    随着前端技术的不断发展,npm 包作为前端开发中最重要的工具之一,对于提高开发效率和代码质量起着至关重要的作用。lively-fs-helper 就是一个非常实用的 npm 包,它不仅可以帮助我们更加...

    4 年前
  • npm 包 flatn 使用教程

    前言 在前端开发中,我们经常需要处理一个多层嵌套的数据结构,而 flatten(扁平化) 是将其展平的一种常见操作。在 Node.js 中,有众多的库可以对数组进行扁平化,而 flatn 则是一个专门...

    4 年前
  • npm 包 mocha-es6 使用教程

    前言 Mocha 是一个 JavaScript 测试框架,广泛使用于前端和后端开发中。mocha-es6 是一个基于 Mocha 的 npm 包,它使得在浏览器或 Node.js 环境中,能够使用 E...

    4 年前
  • npm 包 minimal-js 使用教程

    介绍 minimal-js 是一个轻量级的 JavaScript 库,可以帮助你快速的制作出一个优秀的网站和 Web 应用程序。这个库的设计量极小,整个代码库只包含了五个文件,文件体积也不到 5KB,...

    4 年前
  • npm 包 websocket.io 使用教程

    简介 websocket.io 是一个基于 websocket 协议实现的实时通信库,它提供了多种事件和属性用于实现实时通信。本文主要介绍 websocket.io 的使用方法。

    4 年前
  • npm 包 falkor 使用教程

    在前端开发中,我们使用很多工具和库来简化我们的工作流程。其中,npm 包 falkor 是一款非常实用的应用程序,它可以帮助我们管理复杂的数据模型和实现前后端分离。

    4 年前
  • npm 包 rework-visit 使用教程

    什么是 rework-visit? rework-visit 是一个 npm 包,它提供了一个访问 rework AST 树的 API,可以方便地对 CSS 进行扩展和操作。

    4 年前
  • npm 包 node-pipeline 使用教程

    随着前端技术的发展,构建前端应用程序的流水线变得越来越重要。Node.js 社区为前端开发者提供了许多优秀的工具和框架。这里我向大家推荐一个非常好用的 npm 包:node-pipeline。

    4 年前
  • npm 包 live-require 使用教程

    在前端开发中,经常需要使用许多 JavaScript 的工具和库。npm 是一个很好的 JavaScript 包管理工具,可以让我们非常方便地管理和使用这些工具和库。

    4 年前
  • npm 包 incremental-eval 使用教程

    前言 在前端开发中,我们时常需要对 JavaScript 代码进行运行和调试。而一些代码的执行时间比较长,且需要反复执行多次,这就会耗费我们宝贵的时间。incremental-eval 就是一款可以实...

    4 年前
  • 【前端技术】NPM 包 Grunt 使用教程

    前言 在前端开发中,我们经常需要处理大量的文件、进行代码压缩、合并以及自动化处理等工作。Grunt 是一个非常优秀的前端自动化工具,可以帮助我们快速完成这些任务,提升开发效率。

    4 年前
  • npm 包 sha1sum 使用教程

    什么是 sha1sum? sha1sum 是一个在前端开发中常用的 npm 包,它的作用是计算字符串的 SHA-1 哈希值。SHA-1 哈希算法是一种不可逆的加密算法,它可以将任意长度的消息压缩成一个...

    4 年前
  • npm 包 express-params 使用教程

    前言 Node.js 是一个非常流行的服务器端开发框架,它提供了丰富的内置 API,但有时候我们还需要依赖一些第三方库来实现更加复杂的功能,而 npm 是全球最大的 Node.js 包管理器,为 No...

    4 年前
  • npm 包 prexit 使用教程

    前言 在我们的日常开发过程中,有时候我们需要在终端运行一些长时间运行的任务,如监听文件的变化,启动服务等等,然而很多时候我们却在运行任务的过程中不知道如何优雅的退出进程。

    4 年前
  • npm 包 nbuild 使用教程

    nbuild 是一个基于 npm 包构建工具的扩展。它可以让你在结构化的项目目录中,通过简单的配置文件进行构建任务的组合,达到高效、可维护的构建效果。 本文将介绍如何使用 nbuild 进行前端项目的...

    4 年前
  • npm 包 @types/lodash.escaperegexp 使用教程

    在前端开发中,我们常常需要使用字符串进行一些比较和操作。而在这些字符串中,有一些特殊字符需要被转义,如正则表达式中的特殊字符。为了方便开发,我们可以使用 Lodash 库中的 escaperegexp...

    4 年前
  • npm 包 @types/util.promisify 使用教程

    在前端开发中,经常需要将一个传统的回调式异步方法转换成 Promise 形式,这样代码就更加简洁易懂,便于使用 async/await 等现代化语法。而 Node.js 本身提供了 util 模块中的...

    4 年前
  • npm 包 mock-inquirer 使用教程

    随着前端开发的发展,我们经常需要编写一些交互式的命令行工具以便我们在命令行下进行一些操作。而实现这些操作需要我们提供一定的输入,这些输入有时需要我们自己手动输入,而有时候我们又需要一些虚拟的输入数据来...

    4 年前
  • npm 包 css-compressor 使用教程

    鉴于现在的前端开发越来越依赖于各种开源库和工具,npm 作为 Node.js 包管理器,其对于前端的影响也越来越显著。此篇文章将会介绍一个非常实用的 npm 包:css-compressor,用于压缩...

    4 年前
  • npm 包 fastify-formbody 使用教程

    在前端开发中,经常有需要处理传输数据的情况,而使用 Node.js 开发后端时,需要引入一些第三方包来方便数据的处理与传输。其中一个常用的 Node.js 模板—— Fastify,提供了 fasti...

    4 年前

相关推荐

    暂无文章