仮想DOMではなくテンプレートですよね?
参考記事: 仮想DOMは本当に“速い”のか? DOM操作の新しい考え方を、フレームワークを実装して理解しよう
reactやvueを利用するメリットはあるでしょうか。
メリットは大いにあります。
とあるAPIが静的HTMLを返してきたとしましょう。
それはdangerouslySetInnerHTMLで任意のDOMの配下にぶら下げる事が可能です。
DOMツリーで見るとこんな感じ
- Reactで管理出来ている領域
- モーダルボックス
- コンフィグ
- APIとHTTP通信を行う箇所
- APIから送られてきたHTMLをベタッと貼り付ける領域
こんな感じでReactで作った巨大な管理画面世界の中に、
ベタッとHTMLを貼り付けて、上から操作する仕組みを用意してしまえば楽に実装出来ます。
JavaScriptにはバブリングを利用したイベント移譲が可能です。
どうせ奥のHTMLがドラスティックに変化したら即死なのはjQueryでもReactでもVueでも一緒なので、
event.target.closest
からCSSセレクタで要素を確認して当てはまるなら実行みたいなイベントを作って行けば問題ありません。
また、特定の箇所からHTMLをぶら下げるということは、
親の要素はReactやVueの世界によりやりたい放題ですよね?
CSSの子孫セレクタを使って上にactiveクラスが存在しないので、
下の要素の○○は非表示にしますみたいな事である程度の見栄えは変えられます。
css
1.item {
2 display: none;
3}
4
5.active .item {
6 display: block;
7}
ReactとjQueryの共闘も可能
高度な事がやりたい場合、
払い出されたHTMLをベタッと貼り付けるだけでは実現出来ない可能性があります。
jQueryは現状ブラウザが読み込んでいるdocument.bodyから探索していく手法もありますが、
HTML文字列をベタッと貼り付けると、閉じた世界でDOMツリーを作って探索できます。
払い出されたHTMLの内部を探索して、
必要な情報だけ吸い上げて、不要な情報は捨ててしまえば良いのです。
後はフルReactやVue.jsだけで表現して好き勝手やれば問題ありません。
jQueryでやるのはオススメしない
基本的にjQueryやネイティブJavaScriptでDOMをいじるのはやめたほうがいいです。
そもそもJavaScriptには「変化しろ!」という命令しか存在しないので、
壊れたDOMは二度と元に戻りません。
(戻れという命令が無いんですね)
結局コピーをとったりなんやかんややり始めると、
自分の作った管理エリアからAPIから払い出されたHTMLをぶら下げるというやり方になります。
やっている事はバグだらけのオレオレReactな訳で、工数増えるだけの無駄な作業です。
今はjQueryの方が超詳しくて、ReactやVueは全然なんだ……
だから一度jQueryで実装してみるんだ……ならまだわかります。
しかしゼロベースでどちらが相応しいかで考えた場合、絶対にJSフレームワークを使うべきです。