本次升级,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了,你们也快快加入吧!
原文:http://www.cnblogs.com/rubylouvre/p/4180611.html