本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能。
本次升级带来的最大的特性是$digest
在之前的版本,如果我们对VM的某个监控属性连续地改动,每次改动都立即同步到视图,并触发对应的$watch回调。
<!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <script src="avalon.js"></script> <script> var vm = avalon.define({ $id: "test", aaa: 111 }) vm.$watch("aaa", function(v) { console.log(v) }) vm.aaa = 1 vm.aaa = 2 vm.aaa = 3 </script> </head> <body ms-controller="test"> {{aaa}} </body> </html>
控制台会依次输出1,2,3
<!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <script src="avalon.js"></script> <script> var vm = avalon.define({ $id: "test", aaa: 111 }) vm.$events.$digest = true vm.$watch("aaa", function(v) { console.log(v) }) vm.aaa = 1 vm.aaa = 2 vm.aaa = 3 </script> </head> <body ms-controller="test"> {{aaa}} </body> </html>
这时只输出一次,这对于一些类似于mousemove的频繁操作非常有利,大大提升性能。
最近一朋友用avalon做的一个使用avalon的模板项目。 https://github.com/pinghe/seedfrontend
此原型项目展示了:
这是另一个朋友用avalon搭建后台系统的心得, 《使用mvvm框架avalon开发公司内部运营管理系统的一些心得》
此外,avalon已经启用 新官网 。
迷你MVVM框架在github的仓库 https://github.com/RubyLouvre/avalon
avalon的新UI库地址 OniUI , 多达42个UI,强大的换肤功能
朋友们用avalon做的东西
最近,已经有三个百度部门(百度移动,百度商业,百度推广)在用avalon了,你们也快快加入吧!