全新单页JavaScript框架Amaple


单页Web应用作为新一代Web模式,为用户提供了更流畅的体验满足感。早在Chrome5、IE8和Firefox3的年代就可以通过hash技术实现单页Web应用,而HTML5新history API的出现让单页Web应用从幕后迅速走向台前。 Amaple 作为一款体验优先的JavaScript单页框架,可以在不依赖其他工具的前提下快速开发单页Web应用,这也意味着那些只掌握了前端基础知识的开发者也能很容易上手开发。在开始具体聊Amaple单页框架前,我们先聊聊单页Web应用本身,从简介绍,单页Web应用通常由一个主页面及若干个模块构成,在页面跳转或表单提交期间不会刷新浏览器(人为刷新除外),使用起来它更像桌面应用,致使许多著名的互联网公司都在不断地转向它,如Google、Twitter、Facebook,国内的有百度搜索、百度翻译、阿里巴巴淘宝网的商品列表页、阿里妈妈控制台等。


单页Web应用与传统Web对比

# 体验

  • 普通的Web应用跳转受限于浏览器,它将会丢弃整个页面并重新加载一个新的页面,此时会出现短暂的页面空白,而单页Web应用通常在跳转时只更新部分模块的内容,既不会出现空白现象,还能达到更快的页面渲染速度,从而提供更流畅的体验。
  • 普通Web应用在加载时显示的动画只能固定为浏览器的加载图,但单页应用的跳转是无刷新的,因此可以像桌面应用和App一样自定义加载数据时的等待样式,你可以编写一个有趣的加载等待动画,或是进度条等,让你的Web应用更加多姿多彩。

# 架构

单页Web应用通常不需要与服务器端代码混合,它们使用数据API进行通信,完全实现了前后端的分离,甚至前后端代码可以不在同一台服务器中,这也更加接近桌面应用和App的机制,这意味着你不用为Web应用单独开发一套服务端代码,而且为将前端代码放在CDN上提供了可能,这些在后端渲染的普通Web应用上是做不到的。

# 性能

不得不承认,单页Web应用在性能上也有它的瓶颈,相比于普通Web应用,因为它的模块视图通常是js动态创建的,并且视图和数据的请求也相互独立,所以单页Web应用在加载时往往需要更多的http请求次数,而且动态创建与数据请求是串行执行的,这其实也是单页Web应用不利于SEO的原因所在。但另一方面,正因为单页Web独有的代码级页面缓存,可以实现更快的页面渲染表现,而SEO也可以使用现有技术来消除。


谈谈单页Web应用的未来

# Web的天生优势

跨平台、响应式、免安装与易编写等,这些都是Web的天生优势,这些优势能让它快速蔓延并在任何场景下使用。微信为了利用这些优势,将它们与Native App进行结合推出了功能较全体验较好的小程序,Facebook为了统一Android、IOS与Web的编写方法创造了React Native,选择以HTML、JavaScript和CSS来生成两大移动端App的代码。

# 单页Web应用的机会

Google为了推进Web的发展也推出了PWA和AMP,让Web应用的体验更加接近Native App,可见,Native App与Web的发展趋势就像艺术一样相互融合,相互吸收,目的是为了不断提高应用的体验效果,和寻求一种更加开放统一的生产方式。单页Web应用也刚好符合这些趋势,这种技术完全有Web本身的优势,并且在提供了更好体验的同时,也在不断推进服务端API的统一。在未来,可能产生更多类型的终端,如VR、AR等,这意味着Web跨平台和自适应的优势会更加明显,而不仅限于PC和手机端。但目前来看,单页Web应用在技术实现和体验上还有更大的发展空间,而这就是 Amaple 所要推进的。


Amaple 上快速构建单页应用

日益强大的Web体系催生了 Amaple,它的定位是让单页Web应用体验更流畅,构建更简单,即使初级前端开发也能顺利掌握和使用,根据这些, Amaple 的设计有以下特点:

# 遵循Web的原生设计原则

降低学习成本的一个特点是沿用原生Web开发的标准,这样可以最大化符合具有一定基础的开发者的认知范围,这也是 Amaple 的设计原则之一。在 Amaple 单页应用中,依旧使用href属性跳转页面,使用<form>设置action属性提交表单,只是它们是浏览器无刷新的跳转,甚至可以创建像ShadowDOM那样的组件,在组件内使用特定子元素,看起来就像<video>和<source>、<select>和<option>的关系一样。Amaple 还推荐在DOM元素设置onclick属性绑定点击事件等

# 数据驱动

2005年Ajax的出现使Web与服务端的通信再也不用刷新页面,Web的体验也通过Ajax技术攀升了一个层次,但前端开发的工作却不断地复杂起来,他们必须更多地和DOM元素打交道,将服务端的数据更新到页面中,这催生了jQuery,它让DOM操作更加便捷,但其实本质没变。为了更好地解决这个问题,2010年出现了最早的MVVM框架knockout,它能屏蔽几乎所有的DOM操作,使开发者专注于业务数据,这也是业界承认的最佳界面开发方式。Amaple也提供了更简洁的动态模板引擎,支持开发者使用模板指令将数据绑定到视图,并通过数据驱动视图的自动更新。

# 模块化

【页面模块化】

单页Web应用的特点之一是将页面划分为多个模块,URL跳转时更新模块的内容。在 Amaple 中存在模块(Module)和组件(Component)两种模块化单位,模块是单页Web应用更新的最小单位,它管控URL跳转时的内容替换、参数更新等一系列变化,而且允许开发者定义任意层级的任意多个模块及子模块;而组件的定位是拥有特定功能的封装块,它有自己的独立视图、状态数据和组件行为。与其他单页库相比,它们的职责更清晰,也易于理解。

【编写模块化】

JavaScript的模块化远远不如服务端语言,直到AMD、CMD两种模块化规范的出现使模块化才得以逐渐发展。随后W3C在ES6中也启用了import关键字来推动原生的模块化发展,因浏览器厂商可怜的支持慢慢催生了nodejs平台的webpack、browserify、rollup等模块打包工具的诞生,这让JavaScript的模块化更加成熟,但同时也带来了更大的开发复杂度。 Amaple 为了解决这个问题,内嵌了模块化功能,它允许将模块文件、组件文件和插件文件单独编写并分类保存,这让不熟悉nodejs构建工具的开发者也能编写模块化的JavaScript,而对于熟悉nodejs构建工具的中高端开发者,你也完全可以使用webpack、babel、scss/less等工具辅助开发。

# 体验更流畅

Amaple 的另一个目的是构建体验更加流畅的单页Web应用,因此,Amaple 从以下三个方面的优化来保证更有体验感的单页Web应用:

【更流畅的动画效果】

随着移动终端配置的不断提高及操作系统的优化,让Web应用在移动端表现出更优秀的动画效果成为可能。
Amaple 也希望利用这一趋势提供更加高效便捷的解决方案,它允许你在不操作DOM元素的情况下实现模块的切换动画、组件动画,甚至可以像App那样实现复杂的动画及帧动画,你可以为你的单页应用挂上一个带有酷炫动画的Loading组件,也可以将所有可点击的按钮设计成Loading组件,触发http请求的按钮将启用Loading功能。

【使用更好的虚拟DOM】

相比其他带有虚拟DOM的库, Amaple 实现了性能更好的虚拟DOM,在元素移动的时候,它不再需要开发者为它提供识别的key标志,也能自动判断移动的元素,并自动计算出最优的移动步骤进行移动。

【更快的页面更新】

当前的单页Web应用存在预加载和懒加载两种形式,预加载在使用过程中较为流畅,但往往在首屏加载需要较长的时间,而懒加载更接近于普通的Web应用,每个页面的访问时间也较为平均。但是否能结合这两种形式的优点,在使用过程中既能更流畅,还能使首屏加载时间趋近于正常呢?这也是 Amaple 所要解决的。

开放式

和其他JavaScript框架或库相同, Amaple 也希望通过社区的力量来丰富自己,所以 Amaple
的插件模块除了支持自身的插件格式外,还支持符合AMD和iife规范的插件,这也就意味着你可以使用如lodash、socket.io等几乎所有工具类js库。同时还会推出一些辅助工具让开发者更方便发布自己的插件或组件。


无薪招募伙伴

如果你是一位热爱并具有丰富经验的Web前端工程师,那你一定希望创造一款优秀的JavaScript框架或库,因为这样才能凸显出你高超的编码设计能力,也为你的人生成绩单上重重地划上一笔,那刚好,现在就是你的机会,来成为 Amaple Team 的伙伴吧。
正如你所看到的,我们是无薪招募伙伴而非招聘员工,所以不需要你将所有时间都花在这,你照样可以继续你的本职工作,而我们希望加入我们的是真正热爱并希望致力于创造一个优秀js框架的人,当然,我们也不会让你一无所获:

  • 专属荣誉,这是作为 Amaple Team 中的一员理应得到的,我们会在官网中公布所有成员并颁发专属徽章以示属于你的那份荣誉;
  • 后期的盈利分红,虽然 Amaple 是开源的,但我们还是能利用它和团队的价值创造盈利,只要 Amaple 能提供足够多的价值;
  • 了解更多JavaScript框架和库的核心算法与结识前端技术大牛,这对于你来说可能是更宝贵的一份财富。

我们此阶段的招募只有3个名额,如果你对此感兴趣,请发送邮件到jou@amaple.org,并具体回答以下几个问题:
1.姓名和年龄
2.当前职业和就职所在地
3.请尽量让我们明白你对JavaScript框架或库的经验丰富程度
4.为什么想要加入 Amaple Team


结尾

如果你对 Amaple 也有所期待,可以关注此专题获取最新信息,同时可在评论区打出你的期待分值(满分为5分)及期待的功能。


如果你想了解更多关于 Amaple 的相关信息,请移步:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,501评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,022评论 4 62
  • 这套书一共四本,和汽车嘟嘟系列一起买的。到手发现没我想的有趣,主要是内容太简单了,前后之间也不太连贯,没有故事情节...
    杂粮粥阅读 330评论 0 0
  • 你有多久没有开电视了呢? 最近身边的朋友都在聊,不仅传统的电视节目没人看了,就连《中国好声音》、《我是歌手》等新型...
    顾嘉阅读 397评论 1 2
  • 我为什么会懒?这真是个大题目,因为我真的是懒得无所不能。 不想写文字,虽然我现在用手机在打字,但我明白只是刚下ap...
    鲍鲍爱吃鱼阅读 293评论 1 0