在大前端技术畛域,当咱们遇到了须要解决重复性的问题时,通常会思考设计一个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形式定义组件或页面: