av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

鴻蒙系統(tǒng)中的 JS 開發(fā)框架

瀏覽:81日期:2024-04-19 14:03:25

今天鴻蒙終于發(fā)布了,開發(fā)者們也終于“沸騰”了。

源碼托管在國內(nèi)知名開源平臺碼云上,https://gitee.com/openharmony

我也第一時間下載了源碼,研究了一個晚上,順帶寫了一個 hello world 程序,還順手給鴻蒙文檔提了 2 個 PR。

當(dāng)然我最感興趣的就是鴻蒙的 JS 框架 ace_lite_jsfwk,從名字中可以看出來這是一個非常輕量級的框架,官方介紹說是“輕量級 JS 核心開發(fā)框架”。

當(dāng)我看完源碼后發(fā)現(xiàn)它確實輕。其核心代碼只有 5 個 js 文件,大概也就 300-400 行代碼吧。(沒有單元測試)

runtime-coresrccoreindex.jsruntime-coresrcobserverobserver.jsruntime-coresrcobserversubject.jsruntime-coresrcobserverutils.jsruntime-coresrcprofilerindex.js

從名字可以看出來,這些代碼實現(xiàn)了一個觀察者模式。也就是說,它實現(xiàn)了一個非常輕量級的 MVVM 模式。通過使用和 vue2 相似的屬性劫持技術(shù)實現(xiàn)了響應(yīng)式系統(tǒng)。這個應(yīng)該是目前培訓(xùn)班的“三大自己實現(xiàn)”之一了吧。(自己實現(xiàn) Promise,自己實現(xiàn) vue,自己實現(xiàn) react)

鴻蒙系統(tǒng)中的 JS 開發(fā)框架

utils 里面定義了一個 Observer 棧,存放了觀察者。subject 定義了被觀察者。當(dāng)我們觀察某個對象時,也就是劫持這個對象屬性的操作,還包括一些數(shù)組函數(shù),比如 push、pop 等。這個文件應(yīng)該是代碼最多的,160 行。observer 的代碼就更簡單了,五六十行。

而當(dāng)我們開發(fā)的時候,通過 Toolkit 將開發(fā)者編寫的 HML、CSS 和 JS 文件編譯打包成 JS Bundle,然后再將 JS Bundle 解析運行成C++ native UI 的 View 組件進(jìn)行渲染。

“通過支持三方開發(fā)者使用聲明式的 API 進(jìn)行應(yīng)用開發(fā),以數(shù)據(jù)驅(qū)動視圖變化,避免了大量的視圖操作,大大降低了應(yīng)用開發(fā)難度,提升開發(fā)者開發(fā)體驗”。基本上就是一個小程序式的開發(fā)體驗。

鴻蒙系統(tǒng)中的 JS 開發(fā)框架

在 srccorebaseframework_min_js.h 文件中,這段編譯好的 js 被編譯到了 runtime 里面。編譯完的 js 文件不到 3K,確實夠輕量。

js runtime 沒有使用 V8,也沒有使用 jscore。而是選擇了 JerryScript。JerryScript 是用于物聯(lián)網(wǎng)的超輕量 JavaScript 引擎。它能夠在內(nèi)存少于 64 KB 的設(shè)備上執(zhí)行 ECMAScript 5.1 源代碼。這也是為什么在文檔中說鴻蒙 JS 框架支持 ECMAScript 5.1 的原因。

從整體看這個 js 框架大概使用了 96% 的 C/C++ 代碼,1.8% 的 JS 代碼。在 htm 文件中寫的組件會被編譯為原生組件。而 app_style_manager.cpp 和同級的七八個文件則用來解析 css,最終生成原生布局。

雖然在 SDK 中有幾個 weex 包,也發(fā)現(xiàn)了 react 的影子。但是在 C/C++ 代碼中并沒有看到 yoga 相關(guān)的內(nèi)容(全局搜索沒發(fā)現(xiàn))。而 SDK 中的那些包僅僅是做 loader 用的,大概是為了在 webpack 打包時解析 htm 組件用的。將 htm 的 template 編譯為 js 代碼。

整體而言,比我預(yù)想的要好一些。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 在线观看成人小视频 | 午夜影院普通用户体验区 | 欧美视频在线免费 | 日韩激情免费 | 亚洲视频在线观看一区二区三区 | 亚洲婷婷一区 | 中文字幕在线看人 | www.久| 亚洲精品一二区 | 日韩在线| 亚洲精品一区国产精品 | 日韩国产在线 | 一级黄色片日本 | 一区二区三区精品视频 | 国产精品成人国产乱 | 国产成人精品免费视频大全最热 | 国产精品视频一区二区三区四蜜臂 | 日韩精品区 | 中文字幕亚洲精品 | 国产欧美一区二区精品久导航 | 日韩欧美视频 | 天天操综合网 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 亚洲精品1区 | 欧美精品福利 | 一区二区在线免费观看视频 | 国产乱码精品一品二品 | 久久久久久久综合 | 亚洲高清在线观看 | 国产精品视频在线免费观看 | 91精品久久久久久久久 | 久久蜜桃av一区二区天堂 | 亚洲视频欧美视频 | 五月婷婷激情网 | 日本精品视频 | 午夜精品久久久久久久久久久久久 | 欧美v在线观看 | 在线视频第一页 | 午夜精品三区 | 久久夜夜 | eeuss国产一区二区三区四区 |