在大前端技术领域,当咱们遇到了须要解决重复性的问题时,一般会考虑设计一个DSL(Domain-Specific Language)或者抽象出一个框架层,专门来解决这些相似的问题。使用DSL咱们并不须要为特定终端编写多套代码,还能够利用宿主语言的抽象能力,确保各终端渲染效果的一致性以及对开发者友好。前端
目前流行DSL有:React支持的JSX语法、Vue定义的SFC结构和v-*指令集、微信小程序的WXML/WXS语法等。这些DSL最终被编译为目标代码,直接发布于小程序平台,或者借助JS-Runtime运行于APP和Web浏览器。编程
其中,React是函数式编程思想的实践者,最大的特色是发明了JSX语法,容许开发者使用xml的方式在JS中声明UI,并经过组件化和更加语义化的代码而非模板来高效的定义界面,以提供最大的灵活性和响应能力;React只对开发者暴露基础的生命周期和过程,更多的实现和逻辑细节则交由用户灵活定制,单纯的使用JS语言便可完成整个开发过程,有客户端开发经验的开发者将更容易上手React。小程序
而Vue则但愿经过尽量简单的API实现响应式的数据绑定和UI组件的组合及管理,所以默认屏蔽了很是多的操做细节,这对初学者而言提供了巨大的方便;其单文件组件模板语法也更贴近原生Html5,具有Web前端基础的开发者,将可以流畅的过渡到Vue开发中。微信小程序
两者的共同设计思想是虚拟DOM以及数据驱动视图更新,设计目的都是为了下降Web开发的复杂度,提高编码体验以及开发和维护效率,让开发者聚焦在业务上。浏览器
随着移动互联网的迅猛发展,前端技术的范畴已经从Web前端扩展到移动端H5,Android& iOS App,小程序等多端,业务重心也转移到移动端。而通过多年发展的React和Vue已经变得臃肿,难以适应多端背景下,更个性化和深刻下层的应用场景,咱们迫切须要从已有的技术中提取精华,构建出更简单轻巧,可以对不一样端的特性实现针对性优化和处理的能力。微信
APICloud新产品前沿谍报架构
即将发布的全新AVM(APICloud View Model)是APICloud基于标准H5子集设计的DSL中间语言编程框架,其可具有以下能力:app
-
Virtual DOM:经过虚拟DOM,渲染到不一样终端,充分尊重系统特性,为不一样终端执行差别处理,实现高效渲染;框架
-
组件化:高可重用性、可组合性、可维护性的架构设计,隐藏了复杂的DOM结构和行为,让开发者专一于应用的功能和外观;函数式编程
-
数据绑定:轻松将数据源绑定到应用用户界面,下降逻辑复杂性和开发难度;
-
状态管理和路由:有效分离用户界面和数据处理,实现项目的工程化管理;
-
类Vue语法和兼容React JSX,兼具Vue的轻巧和React的灵活性。
APICloud DSL最终可编译为标准JS,经过DeepEngine渲染到app端和Web端,或者编译为微信小程序代码,用于微信小程序平台发布。
APICloud DSL使用Vue方式定义组件或页面:
APICloud DSL使用兼容React JSX方式定义组件或页面: