理解javascript中的MVVM开发模式
来源:互联网 发布:网络安全设备管理制度 编辑:程序博客网 时间:2024/06/04 18:27
Model(数据)
同其他的mv*家族成员一样,Model代表特定领域的数据或者应用所需的数据,一个典型的特定领域的数据如用户信息【用户名,头像,email,电话】,或者一首音乐的信息【歌曲名,发行年份,专辑】;
Model仅仅关注数据信息,不关心任何行为;她不格式化数据或者影响数据在浏览器中的展现,这些不是他的职责;格式化数据是view层的任务,同时业务逻辑层被封装在viewmodel中,用来和model进行交互。
在Model层做的一个比较意外的行为是对数据的验证,比如当用户输入email的时候,判断email的格式是否正确。
在KnockoutJS中,Model基本是按照上面的定义来实现的,但是会有通过ajax调用服务器服务来进行读写Model数据。
View(视图层)
View是指应用中和用户直接交互的部分,他是一个交互式的UI来表示ViewModel的状态,View被认为是主动的,而不是被动的?这句话的意思是说被动的View在应用中不关心model的领域,model的领域在controller中维护;MVVM的主动式的View包含数据绑定,事件和需要理解model和viewmodel的行为,尽管这些行为可以和属性对应,view仍然需要响应viewmodel的事件,同时View不负责控制状态。
KnockoutJS的view层就是一个简单的html文档,它里面会有关联到viewmodel的数据声明,同时KnockoutJS的view层显示从ViewModel中获取的数据,传递命令给viewmodel,并且更新viewmodel改变的状态。
ViewModel(业务逻辑层)
可以认为ViewModel是一个专门用于数据转换的Controller,它可以把Model中的信息转换为View中的信息,同时从View传递命令给Model;
从这个意义上来说,ViewModel看上去更像一个Model,但是它控制着View的很多显示逻辑,同时ViewModel也暴漏一些方法用来维护view的状态,根据View的行为和事件来更新model;
综上,ViewModel位于UI层的后面,暴漏数据给View,可以认为是View层的数据和行为的源;
KnockoutJS把ViewModel解释为数据的展现和表现在UI上的行为,他不是ui需要持久化的数据模型,但是他可以持有用户存储的数据;Knockout的 ViewModels是采用javascript对象实现的,不用关心html标签,这种抽象的方法可以使它们的实现保持简单。优点:
- MVVM使并行开发更加容易,使前端开发和后端开发人员互不影响。
- 抽象化View层,减少了代码中的业务逻辑
- ViewModel比事件驱动更容易测试
- ViewModel的测试不用关心uI的自动化和交互
缺点:
- 对于简单的ui,使用MVVM有点太重
- 声明式的数据绑定不利于调试,因为命令式的代码可以和容易的设置断点,这种模式就不利于设置这样的断点
- 在不挑剔(non-trivial)的应用里数据绑定可以创建大量的簿记(book-keeping)。你也不想结束于绑定比被绑定的对象更复杂的情况。
- 在大的应用中,在获取大量的概要(generalization)前很难设计视图-模型层
- 理解javascript中的MVVM开发模式
- 理解javascript中的MVVM开发模式
- 理解javascript中的MVVM开发模式
- 理解javascript中的MVVM开发模式
- Android开发中的MVVM模式
- 理解MVC、MVVM、RAC开发模式
- 在WP8开发中的使用MVVM模式
- MVVM模式简单理解
- 对MVC、MVVM开发模式的理解和总结
- JavaScript大杂烩18 - Web开发的MVVM模式
- WPF中的MVVM模式
- WPF中的MVVM模式
- WPF中的MVVM模式
- WPF中的MVVM模式
- Angular中的MVVM模式
- MVVM开发模式
- mvvm开发模式
- MVVM开发模式
- 小工具URL编码
- HCE基础知识普及
- C# WPF 小工具HTML转JS
- poj 3862 Asteroids三维凸包➕重心
- jeesite <meta name="decorator" content="default"/>
- 理解javascript中的MVVM开发模式
- Jquery File Upload 入门
- 【DRP】——JSTL之格式化标签与函数
- 蓝桥杯——带分数
- Youme语音格式及流量
- Java定时任务
- 补码疑云
- 用汇编的眼光看C/C++之深入指针
- 生存指南--任正非说开过枪的人无法当主官