参考2:https://knockoutjs.com/downloads/index.html
参考3:https://gitee.com/mirrors/knockout
4大特点:
(1)声明式绑定:
(2)自动的UI刷新
(3)依赖的跟踪
(4)模板化
Knockout是微软出品,是MVVM模型领域内的先驱,使用函数偷龙转凤,最短编辑长度算法实现DOM的同步,兼容IE6。
MVVM设计模式的优点
-
低耦合
Model的修改不会影响视图的展现,ViewModel可绑定不同的View,当View变化时Model可以不变,当Model变化时View也可以不变。 -
开发独立性
前端更加专注于界面,后端更加专注于逻辑与数据。 -
重用性
ViewModel可对应多个视图,如PC或手机。 -
测试方便
MVVM
MVVM(Model-View-View Model)是创建用户界面的设计模式,它将UI界面分为3部分:
-
Model
Model用于存储应用程序的数据,其数据表示业务领域的对象和数据操作,它独立于任何界面。使用KO时通常是使用AJAX向服务端请求数据赖读写数据模型Model。 -
ViewModel
纯粹用于描述数据内容和页面操作的数据模型。ViewModel不是UI本身,不具有任何HTML和样式的概念。ViewModel不是持久化的数据模型,它仅仅是用户当前使用的未保存的数据。使用KO时,ViewModel是纯粹的不包含HTML的JS对象,保持ViewModel抽象在使用时可保持简单,因此可更简单的操作管理更简单的行为。 -
View
View表示ViewModel状态的一个可见、互动的UI界面,主要用于显示ViewModel的数据信息、发送用户命令以及在ViewModel发生变化时保持自动更新。
使用KO时,View层主要是HTML文档式声明式的绑定到ViewModel,将其关联起来。另外可利用模板从ViewModel中获取对象动态生成的HTML。