在大前端技术畛域,当咱们遇到了须要解决重复性的问题时,通常会思考设计一个 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 两头语言编程框架,其可具备如下能力:
- Virtual DOM:通过虚构 DOM,渲染到不同终端,充沛尊重零碎个性,为不同终端执行差别解决,实现高效渲染;
- 组件化:高可重用性、可组合性、可维护性的架构设计,暗藏了简单的 DOM 构造和行为,让开发者专一于利用的性能和外观;
- 数据绑定:轻松将数据源绑定到利用用户界面,升高逻辑复杂性和开发难度;
- 状态治理和路由:无效拆散用户界面和数据处理,实现我的项目的工程化治理;
- 类 Vue 语法和兼容 React JSX,兼具 Vue 的笨重和 React 的灵活性。
APICloud DSL 最终可编译为规范 JS,通过 DeepEngine 渲染到 app 端和 Web 端,或者编译为微信小程序代码,用于微信小程序平台公布。
APICloud DSL 应用 Vue 形式定义组件或页面:
APICloud DSL 应用兼容 React JSX 形式定义组件或页面: