鴻蒙システムにおけるJS開発の枠組み


今日ついに鴻蒙が発表されました。開発者たちもついに「沸き立ち」ました。
ソースの委託管理は国内で有名なオープンソースのプラットフォームコードクラウドにあります。https://gitee.com/openharmony
私も最初の時間にソースをダウンロードして、一晩研究しました。ハローワールドのプログラムを書きました。鴻蒙文書に2つのPRをしました。
もちろん私が一番興味を持っているのは、鴻蒙のJSフレームワークです。lite_jsfwkという名前からは非常に軽量なフレームワークであることが分かります。公式には「軽量級JSコア開発フレーム」と紹介されています。
ソースを見終わったら、確かに軽いです。コアコードは5つのjsファイルしかありません。おそらく300-400行のコードでしょう。ユニットテストがない)
runtime-core\src\core\index.js
runtime-core\src\observer\observer.js
runtime-core\src\observer\subject.js
runtime-core\src\observer\utils.js
runtime-core\src\profiler\index.js
名前からもわかるように、これらのコードは観察者モードを実現しています。つまり、非常に軽量なMVMモードを実現しました。vue 2と似たような属性ハイジャック技術を使うことで応答システムを実現しました。これは現在の教室の「三大自己実現」の一つでしょう。自分でPromiseを実現し、自分でvueを実現し、自分でreactを実現する)

utilsにObserverスタックが定義されています。観察者が預けられています。subjectは観察者を定義した。あるオブジェクトを観察すると、このオブジェクトの属性をハイジャックする操作であり、さらにいくつかの配列関数、例えばpush、popなどが含まれています。このファイルはコードが一番多いはずです。160行です。observerのコードはもっと簡単です。五六十行です。
私達が開発する時、Toolkitを通じて開発者が作成したHML、CSS、JSファイルをまとめてJS Bundleに包んで、JS Bundele解析をC++native UIのViewコンポーネントに実行してレンダリングします。
「3つの開発者が声明式のAPIを使ってアプリケーション開発をサポートすることで、データ駆動ビューの変化により、多くのビュー操作が回避され、アプリケーション開発の難しさが大幅に低減され、開発者の開発体験が向上します」。基本的には小さなプログラムの開発体験です。

src\core\base\frame eworkでmin.js.hファイルでは、ここでコンパイルされたjsがruntimeにコンパイルされました。コンパイルしたjsファイルは3 K未満です。確かに軽いです。
js runtimeはV 8を使っていません。jscoreも使っていません。JerryScriptを選んだのです。JerryScriptはモノのネットワークに使用する超軽量JavaScriptエンジンです。64 KB以下のメモリを持つデバイスでECMAScript 5.1ソースコードを実行することができます。これもなぜ文書の中で鴻蒙JSフレームがECMAScript 5.1をサポートしていると言っていますか?
全体から見ると、このjsフレームは大体96%のC/C++コードを使っています。1.8%のJSコードです。httmファイルに書いてあるコンポーネントは元のコンポーネントにコンパイルされます。アプリ_スタイル.manager.cppと同級の7,8つのファイルはcssを解析するために用いられて、最終的にオリジナルのレイアウトを生成します。
SDKにはいくつかのweexバッグがありますが、reactの影も発見されました。しかし、C/C++コードにyoga関連の内容は見られませんでした。SDKの中のカバンはloader用だけです。たぶんwebpackを梱包する時にhttmコンポーネントを解析するためのものです。httmのtemplateをjsコードにコンパイルします。
全体的には私が予想していたより良いです。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。