登錄 注冊
購物車0
TOP
Imgs 行業(yè)資訊

0

基于鴻蒙的JS框架ace_lite_jsfwk開發(fā)

2021-02-26 17:26:49
鴻蒙的發(fā)布讓開發(fā)商“沸騰”了。
源代碼托管在國內(nèi)著名的開源平臺碼云, https://gitee.com/openharmony
我也是第一次下載源代碼,研究了一晚上,順便寫了一個helloworld程序,順手提供了兩份鴻蒙的PR文檔。
當然,我最感興趣的是鴻蒙JS框架ace_lite_jsfwk,這是一個非常輕量級的框架,從它的名字就可以看出來。官方將其作為“輕量級JS核心開發(fā)框架”引入。
看源代碼的時候發(fā)現(xiàn)真的很輕。它的核心代碼只有5個js文件,大概是300-400行代碼。(沒有單元測試)
從名稱中可以看出,代碼實現(xiàn)了一個觀察者模式。換句話說,它實現(xiàn)了一個非常輕量級的MVVM模式。響應系統(tǒng)采用類似vue2的屬性劫持技術實現(xiàn)。這應該是當前培訓班的“三個自我實現(xiàn)”之一。(自己實現(xiàn)Promise、vue和react)utils定義了一個觀察者堆棧,其中存儲了觀察者。主體定義了被觀察的人。當我們觀察一個對象時,也就是劫持對象屬性的操作,我們還包括一些數(shù)組函數(shù),比如push,pop等等。這個文件應該有最多的代碼,160行。觀察者的代碼更簡單,五六十行。
我們在開發(fā)的同時,通過Toolkit將開發(fā)人員編寫的HML、C  SS、JS文件編譯成JSBundle,然后解析運行JSBundle到C  nativeUI的View組件中進行渲染。
“通過支持三方開發(fā)者使用聲明式API進行應用開發(fā),數(shù)據(jù)驅(qū)動視圖變化,避免了大量的視圖操作,大大降低了應用開發(fā)的難度,提升了開發(fā)者的開發(fā)體驗”?;旧鲜切〕绦蜷_發(fā)體驗。
在src  \ core  \ base  \ framework  _ min  _ js  . h文件中,這個編譯好的js被編譯到運行時中。編譯的js文件比3K少,真的很輕量級。
Jsruntime不使用V8和jscore。我反而選擇了JerryScript。JerryScript是一個超輕量級的物聯(lián)網(wǎng)JavaScript引擎。它可以在內(nèi)存小于64KB的設備上執(zhí)行ECMAScript5.1源代碼。這就是為什么文件說鴻蒙JS框架支持ECMAScript5.1
總的來說,這個js框架使用了大約96%的C/C代碼和1.8%的JS代碼。用htm文件編寫的組件被編譯成原生組件。而app_style_manager.cpp和七八個同級別的文件用來解析css,最后生成原生布局。
雖然SDK里有幾個weex包,但是我們也發(fā)現(xiàn)了react的影子。但是在C/C代碼中,沒有瑜伽相關的內(nèi)容(在全局搜索中找不到)。而SDK中的那些包只是作為加載器使用,可能是為了在Web  Pack打包把htm的模板編譯成js代碼時解析htm組件。
總的來說,比我預想的要好。

高都電子,為客戶創(chuàng)造價值!

雙面板免費加費,四層板加急打樣,厚銅電路板打樣

Xcm