team-apm / apm

AviUtl Package Manager - AviUtlやプラグイン・スクリプトを一括管理
https://team-apm.github.io/apm/
MIT License
100 stars 2 forks source link

部分的なVDOMの導入提案 #1225

Open yumetodo opened 1 year ago

yumetodo commented 1 year ago

問題点

/src/renderer/main/package.tsはやはり長大であり、一つの関数も長い。根本的に自力でDOM操作をしていることが型付けを煩雑にして、コードを膨らませている。

提案する解決方法

mithril.jsを用いて部分的にVDOMの恩恵を受けるようにする。mithirl.jsはpure jsで記述できるVDOMライブラリで、document.getElementById等によって取得した任意の要素(一般に空のdiv tag)の配下だけを管理させることができる。

検討した代替案

ReactやVueを用いる場合全面書き換えとなるのでつらい。

補足説明

mitosagi commented 1 year ago

部分的なVDOMを導入するのは良いアイデアだと思います。

調べたところ、Reactでも複数のVDOMを使えるようです。mithril.jsは非同期関数内の再描画にトリガーが必要なことを考えると、Reactを使うのが良いかもしれません。

yumetodo commented 1 year ago

Reactでもいけるんですね。

tsxを使う場合はビルドチェインの複雑化になるのでメンテナンスできるかを気にしたほうが良さそうです

hal-shu-sato commented 6 months ago

やっとNext.jsで書けるくらいにはReact勉強しました サーバーサイド処理がないはず?なので、Next.jsとはまた異なりそうではありますが、部分的にVDOMに移行するのであれば、私もリライト可能です 一応コンポーネントとしてreact-bootstrapを使うのには慣れています