Agile Lite是一个HTML5移动前端框架。支持jQuery和Zepto双引擎。而且提供与UI无关的独立框架,内置了Flat
UI样式和Ratchet样式。同一时候也支持单页模式和多页模式开发。

对于眼下比較流行的微信内置浏览器APP,Agile Lite能够轻松的使用不同模式来开发。

以下就来介绍基于Agile Lite的微信webapp的特点。了解使用Agile Lite能够适应哪些场景。





特点一:丰富的UI组件

Agile Lite设计了众多的UI组件。包含一些主要的组件,如:button、颜色、字体图、表单、列表、详情等页面。也对一些特殊的控件和性能效率的优化提供的组件。比方:slider滑动组件、sliderPage滑动页、下拉上拉刷新组件、懒人载入组件、滑动删除组件、动态编辑列表组件以及日历组件等。组件的设计符合移动端的操作习惯和风格,并全然遵循HTML5的规范。

特点二:无关UI的独立扩展

Agile Lite的基础UI只包括一个layout的CSS样式表,再此框架内的全部具有独立UI特性的样式都能够增加到Agile Lite中,比方,我们在源代码中内置的Recthet样式全然能够在Agile Lite中使用。

所以。对于开发人员来说扩展自己的UI是很方便的。不受限于现有样式





特点三:jQuery和Zepto双引擎支持

不管是jQuery还是Zepto都有各自的优劣势,给非常多开发人员带来了选择的困扰。

Agile Lite对两者都做了非常好的适配。不管使用哪种引擎都能够顺利完毕Agile Lite的逻辑操作。不同页面能够使用不同的引擎。

所以,对于开发人员来说,假设使用了特定引擎的第三方插件都能够非常好的融合进来。





特点四:完整的控制器逻辑操作

Agile Lite的全部组件切换都是通过控制器来完毕的。控制器的写法支持标签属性调用也支持JS方法触发,控制器也能够设置參数给组件调用。比方:section页面、Modal页面、tab页、滑动页等的切换,都能够非常方便的使用控制器实现。

并且全部控制器都是能够扩展的,对于新的控制需求能够通过对控制器的扩展做到。

特点五:全然事件驱动的架构

从Agile Lite启动,到各个组件的创建、显示、隐藏、销毁等生命周期都有对应的事件触发,全部业务逻辑均在事件内完毕,而且这些事件假设与宿主容器的原生事件绑定,就能够完毕跟原生程序全然一样的生命周期交互逻辑,更符合app的效果。

比方微信的ready事件和close关闭页面函数都能够绑定到Agile Lite中。





特点六:单页模式和多页模式共存

Agile Lite的开发模式既支持单页模式也支持多页模式。原则上单页模式适合单窗体宿主容器(如:PhoneGap等),多页模式适合多窗体宿主容器(如ExMobi等)。可是。在微信中却非常特殊,对于办公类APP一般使用单页模式,能够使页面DOM结构得到最大限度的重用,以及最方便的页面交互(无须跨页操作),而对于营销类的APP。多数页面须要被转发传播,具有相对的独立性,能够使用多页模式。

特点七:微信JS SDK无缝集成

微信本身提供了丰富的JS SDK。能够帮助开发人员在应用中使用一些本地能力以及针对微信内操作的一些事件监听以实现更复杂的逻辑。

Agile Lite对微信的JS SDK实现了config的鉴权,简单配置就可以实现JS SDK的无缝调用,并支持微信支付的高速实现,帮助开发人员更快更灵活的使用微信的JS SDK。

最后还是要韶一韶Agile Lite的短板。

Agile Lite在架构之初是为具有宿主容器的框架而设计的(比方PhoneGap、ExMobi等),所以。业务逻辑更偏向于原生APP。所以对于非常多基于浏览器这类单窗体的营销页面和游戏是不适合的,由于单页模式中仅含有一个页面。也就是一个URL地址。对于页面分享和转发有一定的局限。而採用多页模式尽管能够解决此问题,可是单页模式的非常多特点就丧失了。另外,Agile
Lite的多页模式也更适合在ExMobi这类能够支持多窗体打开的宿主容器中,多页与多窗体匹配才干发挥更到的效应。

好了。说了这么多。该是到体验的时候了,以下奉上几个Agile Lite的演示样例,以供參考。

     

Agile Lite 演示样例                                         EDN Lite版本号(discuz论坛)



     

商城微店类演示样例                                        Agile Lite微信JS SDK



官方地址:http://www.agilelite.net/index.html

混合式框架-AgileLite的更多相关文章

  1. 在Winform混合式框架中整合外部API接口的调用

    在我们常规的业务处理中,一般内部处理的接口多数都是以数据库相关的,基于混合式开发的Winform开发框架,虽然在客户端调用的时候,一般选择也是基于Web API的调用,不过后端我们可能不仅仅是针对我们 ...

  2. 混合式框架-AngularJS

    简单介绍   AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门非常好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也能够认 ...

  3. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

  4. Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用

    前面几篇介绍了Web API的基础信息,以及如何基于混合框架的方式在WInform界面里面整合了Web API的接入方式,虽然我们看似调用过程比较复杂,但是基于整个框架的支持和考虑,我们提供了代码生成 ...

  5. Web API应用架构在Winform混合框架中的应用(1)

    在<Web API应用架构设计分析(1)>和<Web API应用架构设计分析(2)>中对WebAPI的架构进行了一定的剖析,在当今移动优先的口号下,传统平台都纷纷开发了属于自己 ...

  6. Entity Framework 实体框架的形成之旅--实体框架的开发的几个经验总结

    在前阵子,我对实体框架进行了一定的研究,然后把整个学习的过程开了一个系列,以逐步深入的方式解读实体框架的相关技术,期间每每碰到一些新的问题需要潜入研究.本文继续前面的主题介绍,着重从整体性的来总结一下 ...

  7. 循序渐进开发WinForm项目(6)--开发使用混合式Winform模块

    1.Winform数据访问模式定义 传统的Winform程序模块:用于传统的数据库通讯获取数据,这种方式获取数据,方便快捷,可以用于常规的业务系统的场景,用于单机版软件或者基于局域网内的业务系统软件. ...

  8. 开发使用混合式Winform模块

    开发使用混合式Winform模块 1.Winform数据访问模式定义 传统的Winform程序模块:用于传统的数据库通讯获取数据,这种方式获取数据,方便快捷,可以用于常规的业务系统的场景,用于单机版软 ...

  9. Vue与React两个框架的区别对比

    简单介绍 React--Facebook创建的JavaScript UI框架.它支撑着包括Instagram在内的大多数Facebook网站.React与当时流行的jQuery,Backbone.js ...

随机推荐

  1. B2. Concurrent 线程池(Executor)

    [概述] 与数据库连接管理类似,线程的创建和销毁会耗费较大的开销,使用 “池化技术” 来更好地利用当前线程资源,减少因线程创建和销毁带来的开销,这就是线程池产生的原因. [无限创建线程的不足] 在生产 ...

  2. python circle nested

    #!/usr/bin/python # -*- coding:utf- -*- # @filename: tmp2 # @author:vickey # @date: // : def circle_ ...

  3. java常见日期格式转换以及日期的获取

    package com.test.TestBoot.SingleModel;import java.text.SimpleDateFormat;import java.util.Date;public ...

  4. 树莓派 -- oled 续(2) python

    上文中的代码通过wiringPi的API调用devfs API来显示图片. 这里分析的Python代码也通过类似的方法来显示图片. 主要用到了两个Library. import spidev impo ...

  5. 树莓派--bcm2835 library (2) 交叉编译BCM2835

    在上文中,按照guide, 在树莓派目标板上install bcm2835. 因为bcm2835是用户空间应用,所以可以在宿主机上交叉编译,生成binary后在树莓派执行 按照guide: Insta ...

  6. assert.notDeepEqual()

    assert.notDeepEqual(actual, expected[, message]) 深度地不相等比较测试,与 assert.deepEqual() 相反. const assert = ...

  7. Buffer.compare()

    Buffer.compare(buf1, buf2) buf1 {Buffer} buf2 {Buffer} 返回:{Number} 比较 buf1 和 buf2 通常用于 Buffer 数组的排序目 ...

  8. 小DEMO之manifest初体验

    前言 补漏洞系列~今天来动手体验一下HTML5中的离线应用之mainifest缓存清单.实际上H5还提供了一个JavaScript接口来用于更新缓存文件的方法以及对缓存文件的操作.在Chrome中,输 ...

  9. 集训第四周(高效算法设计)M题 (扫描法)

    原题:UVA11078 题意:给你一个数组,设a[],求一个m=a[i]-a[j],m越大越好,而且i必须小于j 怎么求?排序?要求i小于j呢.枚举?只能说超时无上限.所以遍历一遍数组,设第一个被减数 ...

  10. ECNU 3263 丽娃河的狼人传说 (贪心)

    链接:http://acm.ecnu.edu.cn/problem/3263/ 题意: 从 1 到 n 的一条数轴.有 m 个区间至少要安装一定数量的路灯,路灯只能装在整数点上,有k盏路灯已经安装好  ...