解释一下什么是MVVM摘自汤姆大叔的教程:
MVVM and View Models
Model-View-View Model (MVVM) 是一种创建用户界面的设计模式。 描述的是如何将复杂的UI用户界面分成3个部分:
- model: 你程序里存储的数据。这个数据包括对象和业务操作(例如:银子账户可以完成转账功能),
并且独立于任何UI。使用KO的时候,通常说是向服务器调用Ajax读写这个存储的模型数据。 - view model: 在UI上,纯code描述的数据以及操作。例如,如果你实现列表编辑,你的view
model应该是一个包含列表项items的对象和暴露的add/remove列表项(item)的操作方法。
注意这不是UI本身:它不包含任何按钮的概念或者显示风格。它也不是持续数据模型 – 包含用户正在使用的未保存数据。使用KO的时候,你的view
models是不包含任何HTML知识的纯JavaScript 对象。保持view model抽象可以保持简单,以便你能管理更复杂的行为。
- view: 一个可见的,交互式的,表示view model状态的UI。 从view
model显示数据,发送命令到view model(例如:当用户click按钮的时候) ,任何view model状态改变的时候更新。
使用KO的时候,你的view就是你带有绑定信息的HTML文档,这些声明式的绑定管理到你的view model上。或者你可以使用模板从你的view
model获取数据生成HTML。
Knockout需要的东西:
1、ViewModel
ViewModel是用于前台显示的里面可以设置监视、依赖,模板、声明式绑定
2、ko.applyBindings(ViewModel)
这个是使绑定生效
三大核心:
- 监控属性(Observables)和依赖跟踪(Dependency tracking)
- 声明式绑定(Declarative bindings)
- 模板(Templating)
第一个例子:
ViewModel:
var myViewModel = {
personName: ko.observable(‘Bob‘),
personAge: ko.observable(123)
};
ko.applyBindings(myViewModel);
ViewPage:
The <span data-bind="text: personName"></span> is <span data-bind="text: personAge"></span> year old
时间: 2024-10-10 22:12:58