最近在用avalon做项目,使用的感受是,它确实会比angualr学习成本更低,我不需要花很多时间去了解它的功能,没有指令、没有服务,花一个晚上看看API就差不多能着手用了。avalon的视图它提供了更多的功能,很多细节上的处理,比如说数据类型转换,它都帮我们处理好了,比如ms-duplex-number。avalon它在升级过程中还在吸收着别的库的一些东西,这是好事,但是,也会有一些东西让我很想吐槽,拿绑定回调举例:

  1. data-repeat-rendered ,用ms-repeat绑定,当监控数组发生添加,删除,重排等操作时触发; 参数:当前操作名("add","del","index","clear","move")
  2. data-with-sorted ,用ms-repeat, ms-with绑定,赶对象渲染之前触发,要求输出一个字符串数组,对象的键值对会根据它依次输出; 参数:原对象的所有键名构成的数组
  3. data-with-rendered ,用ms-with绑定,当目标对象输出页面后触发; 参数:当前操作名("add","del","index","clear","move")
  4. data-each-rendered ,用ms-each绑定,当监控数组发生添加,删除,重排等操作时触发; 参数:当前操作名("add","del","index","clear","move")

repeat、with、each都有各自渲染后触发的回调,但是渲染前的回调,repeat与with确是共用了data-with-sorted...

avalon大多数的功能在avalon.define({})中都可以完成了,但是当一个页面交互过多的时候,我开始烦恼代码组织的问题,太多的属性和方法混在一起,需要给它们划分模块,而angular不太需要考虑这些问题,指令、服务、依赖,它都帮我们分好了,我们在使用angular的时候,必须按照它规定的方式书写代码,angular它有更好的扩展体验,从代码结构上,也应该是使用angular会更清晰一点。我总是有这么一种感觉,使用avalon的时候,我的思维模式还是在按照传统的DOM操作方式在思考。

还有API的问题,虽然有,但是不够完整与清晰,因此在使用过程中会蛮痛苦的。

最后,关于流行度与社区力量,这是我最开始学习MV*框架时不选avalon选择angular的原因。angular有谷歌支持,且有非常强大的社区力量。

既然如此,为什么还是用avalon呢?一切都是源于需求!!如果你问我对这两个库印象最深的东西是什么,angular我会说指令和服务,avalon我会说兼容性。angular1.3对IE的支持是从IE9开始的,对于现在还要求6、7、8的公司而言,在前台项目使用angualr就是奢望。最重要的另一个原因,也是源于需求,我接手了一个做了一半的avalon项目O(∩_∩)O,虽然是后台项目,不同模块,总不能这个用avalon,那个用angular吧,交接的时候绝对的会被骂成狗~~

avalon使用体验的更多相关文章

  1. vue初体验:实现一个增删查改成绩单

    前端变化层出不穷,去年NG火一片,今年react,vue火一片,ng硬着头皮看了几套教程,总被其中的概念绕晕,react是faceback出品,正在不断学习中,同时抽时间了解了vue,查看了vue官方 ...

  2. 一次基于Vue.Js用户体验的优化

    .mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...

  3. 一次基于Vue.Js的用户体验优化 (vue drag)

    一.写在前面 半年以前,第一次在项目上实践VueJs,由于在那之前,没有Angular,avalon等框架的实践经验,所以在Vue的使用上,没有给自己总结出更多的经验和体验.随着项目进行和优化改版,无 ...

  4. webpack打包avalon+mmRouter

    这是上一篇<webpack打包avalon+oniui+jquery>的姐妹篇,avalon 的高级应用篇.大家要知道,现在最流行的网页架构就是SPA,SPA能提高用户体验.用户许多数据都 ...

  5. Vue.Js的用户体验优化

    一次基于Vue.Js的用户体验优化   一.写在前面 半年以前,第一次在项目上实践VueJs,由于在那之前,没有Angular,avalon等框架的实践经验,所以在Vue的使用上,没有给自己总结出更多 ...

  6. 迷你MVVM框架 avalonjs 学习教程19、avalon历史回顾

    avalon最早发布于2012.09.15,当时还只是mass Framework的一个模块,当时为了解决视图与JS代码的分耦,参考knockout开发出来. 它的依赖收集机制,视图扫描,绑定的命名d ...

  7. 迷你MVVM框架 avalonjs 学习教程1、引入avalon

    avalon是国内最强大的MVVM框架,没有之一,虽然淘宝KISSY团队也搞了两个MVVM框架,但都无疾而终.其他的MVVM框架都没几个.也只有外国人与像我这样闲的架构师才有时间钻研这东西.我很早之前 ...

  8. 使用avalon 实现一个序列号功能

    avalon"操作数据即操作DOM"的能力,让我们可以专致于业务,写出更专业,更优雅,更易维护的代码来.现在让我们看看如何实现一个序列号输入功能.它的需求以下: 每输入4个字符就跳 ...

  9. jQuery、Angluar、Avalon对比

    最近在慕课网看一些关于avalon的视频,记录下一些笔记及代码实例以便日后自己复习可以用到,另外也可以给不想花时间看视频的小伙伴提供一丝丝帮助 这里主要是做一个简单的todolist 分别用三种不同的 ...

随机推荐

  1. 使用media来加载css

    默认的,css被当做渲染时候必须加载的资源. 设备类型和设备询问允许我们设置一些css资源编程可选的 对于所有的css资源,无论是必须的还是可选的,都会被浏览器加载 The New York Time ...

  2. [练习]使用dx.bat、dexdump.exe、javap、Baksmali

    PART0 这几个工具的关系可以这样描述: 用例: public class Hello { public int foo(int a , int b ) { return (a+b) * (a-b) ...

  3. Python复习 基础知识

     动态语言:变量类型不固定称之为动态语言 什么是动态语言呢? 可以简单的理解为直接被解释执行的语言称为动态语言. 而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言. 当前静态语言有:jav ...

  4. CentOS6.6 zookeeper完全集群搭建

    centos6.6搭建zookeeper-3.4.6完全分布式环境 转载 2015-06-28 22:14:17 标签:it 为了搭建HBase完全分布式环境,前提就是搭建好zookeeper和Had ...

  5. 深度技术Win7系统利用diskpart命令实现硬盘分区的技巧

    转自:http://www.xitongcheng.com/jiaocheng/win7_article_2491.html 1. 深度技术Win7系统利用diskpart命令实现硬盘分区的技巧分享给 ...

  6. TimeUtils(没试过)

    package util; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.ParseExc ...

  7. java集合框架之ArrayList与LinkedList的区别

    参考http://how2j.cn/k/collection/collection-arraylist-vs-linkedlist/690.html#nowhere ArrayList和LinkedL ...

  8. 20个Flutter实例视频教程-第03节: 不规则底部工具栏制作-1

    第03节: 不规则底部工具栏制作-1 博客地址: https://jspang.com/post/flutterDemo.html#toc-973 视频地址: https://www.bilibili ...

  9. Flutter实战视频-移动电商-02.Flutter实战建立项目和编写入口文件

    02.Flutter实战建立项目和编写入口文件 创建项目: flutter create flutter_shop 创建完成之后呢,它会提示我们, 进入flutter_shop的目录,然后执行flut ...

  10. Python及Pycharm安装详细教程

    参考:http://blog.csdn.net/qq_29883591/article/details/52664478 首先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址 ...