登录 注册
购物车0
TOP
Imgs 行业资讯

0

基于鸿蒙的JS框架ace_lite_jsfwk开发

2021-02-26 17:26:49
鸿蒙的发布让开发商“沸腾”了。
源代码托管在国内著名的开源平台码云, https://gitee.com/openharmony
我也是第一次下载源代码,研究了一晚上,顺便写了一个helloworld程序,顺手提供了两份鸿蒙的PR文档。
当然,我最感兴趣的是鸿蒙JS框架ace_lite_jsfwk,这是一个非常轻量级的框架,从它的名字就可以看出来。官方将其作为“轻量级JS核心开发框架”引入。
看源代码的时候发现真的很轻。它的核心代码只有5个js文件,大概是300-400行代码。(没有单元测试)
从名称中可以看出,代码实现了一个观察者模式。换句话说,它实现了一个非常轻量级的MVVM模式。响应系统采用类似vue2的属性劫持技术实现。这应该是当前培训班的“三个自我实现”之一。(自己实现Promise、vue和react)utils定义了一个观察者堆栈,其中存储了观察者。主体定义了被观察的人。当我们观察一个对象时,也就是劫持对象属性的操作,我们还包括一些数组函数,比如push,pop等等。这个文件应该有最多的代码,160行。观察者的代码更简单,五六十行。
我们在开发的同时,通过Toolkit将开发人员编写的HML、C  SS、JS文件编译成JSBundle,然后解析运行JSBundle到C  nativeUI的View组件中进行渲染。
“通过支持三方开发者使用声明式API进行应用开发,数据驱动视图变化,避免了大量的视图操作,大大降低了应用开发的难度,提升了开发者的开发体验”。基本上是小程序开发体验。
在src  \ core  \ base  \ framework  _ min  _ js  . h文件中,这个编译好的js被编译到运行时中。编译的js文件比3K少,真的很轻量级。
Jsruntime不使用V8和jscore。我反而选择了JerryScript。JerryScript是一个超轻量级的物联网JavaScript引擎。它可以在内存小于64KB的设备上执行ECMAScript5.1源代码。这就是为什么文件说鸿蒙JS框架支持ECMAScript5.1
总的来说,这个js框架使用了大约96%的C/C代码和1.8%的JS代码。用htm文件编写的组件被编译成原生组件。而app_style_manager.cpp和七八个同级别的文件用来解析css,最后生成原生布局。
虽然SDK里有几个weex包,但是我们也发现了react的影子。但是在C/C代码中,没有瑜伽相关的内容(在全局搜索中找不到)。而SDK中的那些包只是作为加载器使用,可能是为了在Web  Pack打包把htm的模板编译成js代码时解析htm组件。
总的来说,比我预想的要好。

高都电子,为客户创造价值!

双面板免费加费,四层板加急打样,厚铜电路板打样

Xcm