avalon是什么?

  avalon是一个MVVM框架, Modle-模型层,即为js中从后台接口中取出的数据,例如一个对象或者对象数组,并对这些数据进行一定的格式化。常见的返回数据是这样的{id : 1, name: "%E5%BC%A0%E4%B8%89", birthday : "1467646548"},我们需要把数据转化成为比较规则的数据,像这样{id : 1, name : "张三", birthday : "2016-07-03"},这些数据和处理这些数据的逻辑统称为M层。View-视图层就比较好理解了,即为HTML标签和DOM元素。VM-视图模型层:ViewModel,为连接M和V的一个桥梁,单独有M和V是不能做出什么功能的,需要把M和V连接起来,像在avalon中定义一个数组:userArr = ["zs", "lisi"],在HTML中我们这样写<li ms-repeat="userArr">{{el}}</li>,即可。

我们为什么需要MVVM框架?

  MVVM框架做的最主要的功能就是逻辑和显示分离,即M和V的分离。不管我们用原生的js还是jQuery,业务中混合大量的DOM操作,例如js中拼接HTML,id选择器,层级选择器,下级拼接的DOM依赖上次拼接的DOM……这样做的坏处很明显,1.使业务逻辑不专注,不易管理,例如在写代码的时候,处理一会数据,接着又需要拼接一堆HTML代码,写起来可能还容易些,但是供人读或者后期维护带来非常多的困难;2.业务逻辑和视图层高度耦合,例如这样的代码:$("#div .ul_class li"),实现的功能是id为div的下面的class为.ul_class下面的所有li,这样一层一层的定位DOM,如果其中层级关系改变了呢?某一个元素的id或者class改变了呢?我们是不是需要需要修改我们的DOM元素的查找方式,如果多处我们还需要全局查找id或者class,全局替换,维护成本非常高;尤其现在网站改版已经生了家常便饭,完全使用这种方式,你的代码可能80%都需要重写,这是事实。

为什么选择avalon?

  除了可以使视图和显示完全分离这个最大的好处之外,还有如下好处

  1.和angularjs相比,avalon支持老版本的IE浏览器,如IE6、7。

  2.入门简单,快速上手,减少学习成本

  3.使用avalon之后,可以不用requirejs了,因为avalon自带加载器(当然也可禁用)

  4.可以和jQuery和平同处,现在我的项目中,jQuery只负责Ajax操作和Animation实现,其他功能都不用

avalon教程-简介的更多相关文章

  1. GBDT(MART) 迭代决策树入门教程 | 简介

    GBDT(MART) 迭代决策树入门教程 | 简介  http://blog.csdn.net/w28971023/article/details/8240756

  2. CMake 构建项目教程-简介

    CMake 构建项目教程-简介 Linux 平台构建项目,选择了CLion作为C++的IDE,而CLion默认就是使用CMake构建项目,所以这里记录了CMake在构建项目过程的一些小知识. 1. 项 ...

  3. lucene教程简介

    1 lucene简介 1.1 什么是lucene     Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是 ...

  4. Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 Ub ...

  5. 20181019-JSP 教程/简介

    JSP 教程 这是第一篇JSP JSP与PHP.ASP.ASP.NET等语言类似,运行在服务端的语言. JSP(全称Java Server Pages)是由Sun Microsystems公司倡导和许 ...

  6. 【转载】GBDT(MART) 迭代决策树入门教程 | 简介

    转载地址:http://blog.csdn.net/w28971023/article/details/8240756 GBDT(Gradient Boosting Decision Tree) 又叫 ...

  7. 转:GBDT(MART) 迭代决策树入门教程 | 简介

    在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又 叫 MART(Multiple Additive R ...

  8. css系列教程--简介及基础语法和注意事项

    css简介:css指的是层叠样式表,cascading style sheets.用来定义html中的dom节点如何展示在页面中的问题.解决了内容与表现形式的分离问题.常见的样式表有外部链接样式表和内 ...

  9. 16-GDBT(MART) 迭代决策树入门教程 | 简介

    转载:http://blog.csdn.net/w28971023/article/details/8240756 GBDT(Gradient Boosting Decision Tree) 又叫 M ...

随机推荐

  1. CSS效果:图片切换

    HTML: <html lang="en"> <head> <meta charset="UTF-8"> <meta ...

  2. 博弈论-一堆nim博弈合在一起

    今天A了张子苏大神的的题,感觉神清气爽. 一篇对于多层nim博弈讲的很透彻的博文:http://acm.hdu.edu.cn/forum/read.php?fid=9&tid=10617 我来 ...

  3. Mysql 别名

    一.列别名 1.要给列添加别名,可以使用AS关键词后跟别名,例:SELECT [column_1 | expression] AS descriptive_name FROM table_name; ...

  4. kuangbin专题十二 HDU1069 Monkey and Banana (dp)

    Monkey and Banana Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  5. Django 11 form表单(状态保持session、form表单及注册实现)

    Django 11 form表单(状态保持session.form表单及注册实现) 一.状态保持 session 状态保持 #1.http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状 ...

  6. js 联动下拉菜单

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. Linux软件源apt 仓库 包 的概念

    概念介绍: 软件源是debian系的概念,把软件放在一个pool里面,用一条命令就可以自动从指定服务器下载并安装. 源列表是/etc/apt/sources.list,里面写了你所用的服务器地址 (其 ...

  8. linux学习五

    一.系统服务管理 1.概念 服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程 序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 ...

  9. 利用Shell脚本实现远程MySQL自动查询

    下面这个脚本是一个简单用来执行远程数据库查询的命令,相信大家都能看得懂,这对于有些需要每天自动检查数据库或是执行某些语句的兄弟,是很有帮助的,只要稍加修改就可以 #!/bin/shHOST=192.1 ...

  10. window.open()总结

    今天找父页面和子页面调去问题. 父页面js 1.打开子页面 可以设置子页面长宽高和位置 win= window.open(url, "", "top=45,left=20 ...