距avalon0.7版本发布有一段时间,因为以前的稳定性,就中止一段时间更新,期间研究了下Knockout源码,也尝试写了一个小型的mvvm的实现模型,仅仅只是仿造ko的核心实现,把无关的东西给剥离掉了,有时间总结一下发布出来。javascript
ko算很早就出现的MVVM库了,实现是手段也是异常的巧妙,可是把监听的东西都转成函数表达,调用的时候也必须是函数形式,但使用习惯上,我就不太喜欢了前端
监控属性经过observable内部转换成后,返回带有一个观察者模式的的函数(执行调用与赋值的时候都会有不一样的处理),因此在使用的时候还要 this.firstName()执行才行,java
observable() 是一个特殊的javascript对象,能够通知用户有关变化并自动检测依赖,这样在Model属性的值被修改时,就可使Model和ViewModel保持同步后端
值的学习的是对依赖关系的处理:闭包
1 简单的UI,真是大炮打蚊子 大材小用框架
2 数据绑定声明式,那么调试就很蛋疼了mvvm
3 大型应用数据绑定产生的大量的标记,那么务必的问题绑定比被绑定的对象还要多(ava会删除节点滴)函数
4 产生大量的VM对象,由于都是闭包嵌套滴性能
5 在VM和View之间须要进行解析,性能仍是有成本的学习
固然啦,存在便是道理,合理的采用,而不是一味的盲目追从,我我的偏向迷你的只关注分离逻辑框架便可
avalon要发布稳定版了,做为学习,因此打算从新把新版的avalon源码给从新写一遍 ~ ~
本身正在写一个公司内部MVVM版本