VueもReactも最新っぽい顔してるけど、JSPやRuby on Railsがフロントに移っただけみたいなもの→気負わず使おう
Reactと仮想DOMの考え方
-
HTMLはDOM(ツリー構造のオブジェクトモデル)として抽象化されている
-
動的なWEBサイトを実現するには、JSからDOMを操作する必要がある。
-
Vanilla JSではDOMの操作がやりにくい & ブラウザごとの差異がある
-
リアルDOMの操作は重い
-
js→jQuery(ライブラリ)の登場
-
→そもそも、DOMがJSの外部に存在していて、JSから
操作
する対象になってるのが使いにくい
-
→React(仮想DOM)の登場
-
DOMをJSの値(第一級オブジェクト:基本的な操作を制限無しに出来る対象)にしてしまう
-
仮想DOM
-
const helloNode = <div>Hello!</div>;
-
単純なWebアプリなら静的なHTMLを外側のJSで操作するのが単純
-
例えば : Todoリスト
-
Vue.jsも仮想DOMであるが、テンプレート構文が推奨されている
-
※JSXはそのままJavaScriptエンジンでは動作しないので、JavaScriptへトランスパイルする(Babel)
-
TypescriptのTSXで書けばTypescriptがトランスパイルするのでBabelが不要?
-
従来のフロントエンドはDOMの操作は手続き的だったが、モダンフロントエンドでは宣言的
-
手続き的
const menu = document.queryselector('.menu')
menu.onClick = () => {...}
-
宣言的
-
<nav style={{display: isOpened ? 'block' : 'none'}}>MENU</nav>
コンポーネント指向のUIライブラリは、UI部品を中心として組み合わせていくことが本質で、単にHTMLで平たく一回だけ書下す以上のことができます。部品化を考えなければ、今までどおりのほうが楽なのかもしれません。
👀本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった