MVVM介绍
mvvm的历史已经很久了,现在前端3大框架也都是遵照这个模式设计,相信大家也都清楚。
mvvm这个模式最初应该就是由wpf引进的,由MVC、MVP发展而来,最主要的特性就是双向绑定的概念。
这四个字母分别表示:m(model)模型、v(view)视图、vm(viewmodel)视图模型。
具体含义我也不多说,光从字面意思很好理解,实在不了解的可以搜索引擎搜一下。
“框架”
关于这两个字,我的理解如下:
1. 开发的最基础脚手架,提供开发约束
2. 在1的基础上,提供模块化开发的能力
3. 便捷的SDK和技术抽象、封装,方便上层开发
4. 其它(记起来再补充)
我的选择
本人从事客户端开发5年多,但研究MVVM框架的品种得着实不多,目前只使用过Prism和DevExpress自带的框架。这两个框架的源码看得也比较多(不过现在已经忘得差不多了,原因后面再讲),应该算是相对比较成熟的框架了。我所知道的mvvm框架还有很多,比如近些年比较流行的`ReactiveUI`、`MvvmCross`等,都是比较优秀的,应用也很广泛。
我这个栏目所说的项目中没有使用mvvm框架,原因如下:
1. 该项目由我一个人独立开发,开发约定了熟于我心;
2. “框架”也是代码,它们能实现的,我也能实现(开源的好处);
3. 模块之间的通信有其它技术手段解决;
4. 我不需要太过复杂的功能;
5. 没有框架,我可以使用自己喜欢的IOC容器、自己的`Startup`,可自定义性增强;
目前,没有使用框架的客户端运行十分良好。