avalon使用体验
最近在用avalon做项目,使用的感受是,它确实会比angualr学习成本更低,我不需要花很多时间去了解它的功能,没有指令、没有服务,花一个晚上看看API就差不多能着手用了。avalon的视图它提供了更多的功能,很多细节上的处理,比如说数据类型转换,它都帮我们处理好了,比如ms-duplex-number。avalon它在升级过程中还在吸收着别的库的一些东西,这是好事,但是,也会有一些东西让我很想吐槽,拿绑定回调举例:
- data-repeat-rendered ,用ms-repeat绑定,当监控数组发生添加,删除,重排等操作时触发; 参数:当前操作名("add","del","index","clear","move")
- data-with-sorted ,用ms-repeat, ms-with绑定,赶对象渲染之前触发,要求输出一个字符串数组,对象的键值对会根据它依次输出; 参数:原对象的所有键名构成的数组
- data-with-rendered ,用ms-with绑定,当目标对象输出页面后触发; 参数:当前操作名("add","del","index","clear","move")
- 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使用体验的更多相关文章
- vue初体验:实现一个增删查改成绩单
前端变化层出不穷,去年NG火一片,今年react,vue火一片,ng硬着头皮看了几套教程,总被其中的概念绕晕,react是faceback出品,正在不断学习中,同时抽时间了解了vue,查看了vue官方 ...
- 一次基于Vue.Js用户体验的优化
.mytitle { background: #2B6695; color: white; font-family: "微软雅黑", "宋体", "黑 ...
- 一次基于Vue.Js的用户体验优化 (vue drag)
一.写在前面 半年以前,第一次在项目上实践VueJs,由于在那之前,没有Angular,avalon等框架的实践经验,所以在Vue的使用上,没有给自己总结出更多的经验和体验.随着项目进行和优化改版,无 ...
- webpack打包avalon+mmRouter
这是上一篇<webpack打包avalon+oniui+jquery>的姐妹篇,avalon 的高级应用篇.大家要知道,现在最流行的网页架构就是SPA,SPA能提高用户体验.用户许多数据都 ...
- Vue.Js的用户体验优化
一次基于Vue.Js的用户体验优化 一.写在前面 半年以前,第一次在项目上实践VueJs,由于在那之前,没有Angular,avalon等框架的实践经验,所以在Vue的使用上,没有给自己总结出更多 ...
- 迷你MVVM框架 avalonjs 学习教程19、avalon历史回顾
avalon最早发布于2012.09.15,当时还只是mass Framework的一个模块,当时为了解决视图与JS代码的分耦,参考knockout开发出来. 它的依赖收集机制,视图扫描,绑定的命名d ...
- 迷你MVVM框架 avalonjs 学习教程1、引入avalon
avalon是国内最强大的MVVM框架,没有之一,虽然淘宝KISSY团队也搞了两个MVVM框架,但都无疾而终.其他的MVVM框架都没几个.也只有外国人与像我这样闲的架构师才有时间钻研这东西.我很早之前 ...
- 使用avalon 实现一个序列号功能
avalon"操作数据即操作DOM"的能力,让我们可以专致于业务,写出更专业,更优雅,更易维护的代码来.现在让我们看看如何实现一个序列号输入功能.它的需求以下: 每输入4个字符就跳 ...
- jQuery、Angluar、Avalon对比
最近在慕课网看一些关于avalon的视频,记录下一些笔记及代码实例以便日后自己复习可以用到,另外也可以给不想花时间看视频的小伙伴提供一丝丝帮助 这里主要是做一个简单的todolist 分别用三种不同的 ...
随机推荐
- tomcat 启动增加参数
linux: JAVA_OPTS="$JAVA_OPTS -Dconfig.type=inte2 -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:Max ...
- tinymix
1. tinymix:列出所有的 sound kcontrol 2. tinymix "Capture Volume":读出里面的值 3. tinymix "Captur ...
- Json 不同语言的使用
Javascript: 1.使用eval var parse_json_by_eval = function(str){ return eval('('+str+')'); } var value = ...
- ARM版本系列及家族成员梳理
ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能.廉价.耗能低的RISC (精简指令集)处理器. 1985年第一个AR ...
- vue-element el-select value-key
如果select绑定的值为对象,请务必指定value-key为它的唯一性标示 demo: data(){ return{ test:'', arr:[{id:1,name:'张三'},{id:2,na ...
- 推荐 BI Work
推荐阅读 BI Work 的文章,作为学习用 http://www.cnblogs.com/biwork
- Flutter实战视频-移动电商-54.购物车_商品列表子项布局
54.购物车_商品列表子项布局 子项做成一个单独的页面 新建cartItem.dart文件 新建cart_page文件夹,在里面新建cart_item.dart页面, 页面名字叫做CartItem 定 ...
- Java - HashMap分别按Key和Value进行排序
我们都知道,Java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Ke ...
- 洛谷P1291 百事世界杯之旅
P1291 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听, ...
- SpringBoot2.0 整合 RocketMQ ,实现请求异步处理
一.RocketMQ 1.架构图片 2.角色分类 (1).Broker RocketMQ 的核心,接收 Producer 发过来的消息.处理 Consumer 的消费消息请求.消息的持 久化存储.服务 ...