阅读更多

0顶
0踩

Web前端

原创新闻 迷你MVVM框架 avalonjs 1.3.9发布

2015-01-16 09:32 by 见习记者 司徒正美 评论(1) 有2073人浏览

本次升级,avalon改进了许多内部方法,大大提升性能,并且带来异步刷新视图的新功能。

  • ms-html内部不再使用异步
  • head元素中的avalon元素加入ms-skip指令
  • 重构计算属性,现在超级轻量化
  • 重构CG回收,不会每次都全部检测所有绑定对象
  • 重构内部方法isArrayLike,更好的判定非负整数
  • 重构number过滤器
  • 重构widget的节点回收,去掉onTree方法
  • 重构Collection内部工厂
  • 重构modelFactory, 现在VM.$event.$digest开启异步刷新视图功能
  • 重构offsetParent
  • 重构ms-repeat,不再触发多余的回调
  • 针对IE下 MutationObserver 会撕碎文本节点BUG, 添加 mergeTextNode 内部方法
  • 优化短路与, 短路或的处理逻辑
  • 支持CommonJS和AMD和单文件三种方式引用,支持通过bower命令加载avalon
  • avalon.modern.js遗漏了 parseJSON补上,并且修正parseJSON的逻辑与原生的JSON.parse保持一致
  • 去掉所有与scanCallback相关的定时器

本次升级带来的最大的特性是$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

此原型项目展示了:

  • 支持cordova、browser应用,即同一套代码可用于桌面浏览器和各类手机应用。
  • 使用avalon MVVM框架
  • 使用cordova 用于移动端
  • 使用requirejs amd模块加载器
  • 使用gulp构建系统
  • 展示了页面切分和逻辑模块划分(html、css、js),及如何根据实际切换模块。适用团队分工合作
  • 页面路由技术,页面转换的有限状态机应用。
  • 支持js、coffee脚本
  • 支持css、less、sass 文件
  • 支持三种应用场景,浏览器,移动app
  • 支持生产环境,即可将js合并压缩成单个js文件,优化css文件,优化html文件
  • 支持DevOps

这是另一个朋友用avalon搭建后台系统的心得,《使用mvvm框架avalon开发公司内部运营管理系统的一些心得》

此外,avalon已经启用新官网

迷你MVVM框架在github的仓库https://github.com/RubyLouvre/avalon

avalon的新UI库地址OniUI, 多达42个UI,强大的换肤功能


朋友们用avalon做的东西

最近,已经有三个百度部门(百度移动,百度商业,百度推广)在用avalon了,你们也快快加入吧!

0
0
评论 共 1 条 请登录后发表评论
1 楼 james_lover 2015-04-28 11:24
好东西该推荐

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 迷你MVVM框架---avalonjs.html

    一个迷你框架

  • 迷你MVVM框架 avalonjs1.5 入门教程

    可参考网站:http://www.cnblogs.com/rubylouvre/p/4783966.html

  • 迷你MVVM框架 avalonjs 1.2.5发布

    avalon1.2.5发布,升级ms-widget,整合avalon.require.text到核心,并且修复了avalon.mobile的avalon.innerHTML方法的BUG,让它能执行脚本。 现在开始重新升级avalon.ui,目前button, tabs已经升级...迷你MVVM框架...

  • 迷你MVVM框架 avalonjs 0.84发布

    本版本只要做了如下改进 重构ui绑定 fix scanTag bug ms-include 的值必须不为空值,否则不做任何操作。

  • 支持IE6的迷你MVVM框架avalonjs

    司徒大神的 http://www.cnblogs.com/rubylouvre/p/3181291.html

  • 迷你MVVM框架 avalonjs 学习教程20、路由系统

    迷你MVVM框架 avalonjs 学习教程20、路由系统 时间2014-10-28 14:44:00Ruby's Louvre 原文http://www.cnblogs.com/rubylouvre/p/4056825.html 主题MVVM模式HTML5 SPA的成功离开不这三个东西,分层架构,...

  • Android mvvm 框架,最流行的mvvm demo

    Android mvvm 框架,最流行的mvvm demo 无bug

  • 迷你MVVM框架 avalonjs 入门教程

    http://www.cnblogs.com/rubylouvre/p/3181291.html?ADUIN=273216397 司徒正美 关于MVVM框架

  • Android快速搭建MVVM框架

    上面是从一个开源项目中了解到的框架结构,以最简洁的方式搭建一个app的基础框架。 框架的几个特点是: 通过Jetpack的Navigation构建单Activity多Fragment结构,我们知道Activity是属于比较重的组件,而Fragment是...

  • MVVM框架下实现分页功能示例

    分页这种组件,几乎每一种框架都有这样的组件,这篇文章主要介绍了MVVM框架下实现分页功能示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  • 详解Android的MVVM框架 - 数据绑定

    主要介绍了详解Android的MVVM框架 - 数据绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  • ViewBinding与MVVM框架

    MVVM框架主要的特点就是低耦合,对于不同的view,model可以复用。 目前android 的MVVM框架主要是使用 databinding实现双向数据绑定,来降低耦合度。 首先是用databinding来实现mvvm框架,下面是一个我自己总结的使用...

  • MVVM框架的demo

    MVVM框架的demo,

  • AndroidMVVM应用框架构建过程详解

    说到AndroidMVVM,相信大家都会想到Google2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具。...

  • WPF mvvm框架Stylet使用教程-窗体交互用法

    WPF mvvm框架Stylet使用教程-窗体交互用法,打开窗体、关闭窗体

  • 基于Caliburn.Micro框架的WPF的MVVM开发框架

    CM框架搭建、 事件发布与订阅、 log打印、 ioc容器、 Conductor的用法, 框架下的命名约定以及事件绑定、 Emgucv进行模板匹配、 右键菜单、 单例模式等等。

  • js实现一个简单的MVVM框架示例

    以前都是默默地看园子里的文章,猥琐的点赞,今天也分享一下自己用js实现的一个简单mvvm框架。 最初只做了自动绑定事件,后面又参考学习了vue,knouckout以及argular实现方式,以及结合自己做WPF的一些经验,增加了...

  • jsp物流信息网建设(源代码+论文)(2024vl).7z

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;

  • 中小学教师教育教学情况调查表(学生家长用).docx

    中小学教师教育教学情况调查表(学生家长用)

Global site tag (gtag.js) - Google Analytics