共计 998 个字符,预计需要花费 3 分钟才能阅读完成。
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 形式定义组件或页面: