AVM(Application-View-Model)是APICloud推出的一个跨端的高性能 JavaScript框架,更趋近于原生的编程体验,它提供简洁的模型来拆散利用的用户界面、业务逻辑和数据模型,适宜高度定制化的我的项目

在大前端技术畛域,当咱们遇到了须要解决重复性的问题时,通常会思考设计一个DSL(Domain-Specific Language)或者形象出一个框架层,专门来解决这些相似的问题。应用DSL咱们并不需要为特定终端编写多套代码,还能够利用宿主语言的形象能力,确保各终端渲染成果的一致性以及对开发者敌对。

目前风行DSL有:React反对的JSX语法、Vue定义的SFC构造和v-*指令集、微信小程序的WXML/WXS语法等。这些DSL最终被编译为指标代码,间接公布于小程序平台,或者借助JS-Runtime运行于APP和Web浏览器。

AVM(Application-View-Model)是APICloud基于规范H5子集设计的DSL两头语言编程框架,提供蕴含虚构DOM和Runtime的编程框架avm.js以及多端对立编译工具,齐全兼容Web Components规范,同时兼容Vue和React语法编写代码,编译工具将Vue和React相干语法糖编译转换为avm.js代码。

Avm外围库只关注终端差别、虚构DOM、组件化和数据绑定,与其余重量级框架不同的是,Avm不须要太多的内部依赖,仅须要组件化、数据驱动等更现代化框架的能力。其可具备如下能力:

1. Virtual DOM:通过虚构DOM,渲染到不同终端,充沛尊重零碎个性,为不同终端执行差别解决,实现高效渲染;
2. 组件化:高可重用性、可组合性、可维护性的架构设计,暗藏了简单的DOM构造和行为,让开发者专一于利用的性能和外观;
3. 数据绑定:轻松将数据源绑定到利用用户界面,升高逻辑复杂性和开发难度;
4. 状态治理和路由:无效拆散用户界面和数据处理,实现我的项目的工程化治理;
5. 笨重灵便:类Vue语法和兼容React JSX,兼具Vue的笨重和React的灵活性。

APICloud DSL最终可编译为规范JS,通过DeepEngine渲染到app端和Web端,或者编译为微信小程序代码,用于微信小程序平台公布。

APICloud DSL应用Vue形式定义组件或页面:

APICloud DSL应用兼容React JSX形式定义组件或页面: