宣言的UI
declarative UI
Howのところをコンパイラに任せる
DOM操作は命令的
宣言的なおかげでViewを関数として扱える
v = View(State)
命令的だとfor文(展開したものを書くと考えるとわかりやすい)を書いてるかんじか
count=1のときのコード、count=2のときのコード、を両方書いてる感じ
Reactでは、プログラマは宣言的にコンポーネントを作っていき、ReactのCoreがそれを命令的なものに直し逐次実行している(?)
宣言型UIであるものの例
HTML
C#
Vue
Jetpack Compose
Haskell GUI開発
Flutter
Elmとか?
Unity
対となる概念
命令的、imperative
code:js
$(window).on('load', function() {
$(".page-loader").fadeOut('fast');
});
DOMを指定して、それに対して操作を行う
従来のiOS, Android開発?
jqueryとreact, fluxの比較
手続的GUI
では、時間軸などの状態を意識しないといかないので、コードだけ読んでもどういう画面になるのかが理解しづらい
特に複雑になってくるとまじでわけわかめ
実際に動かしてみて動きを理解していく感じのデバッグ
動的型付けのときの問題みたいな?
参考
詳しい
手続きはモードを発生させる
https://speakerdeck.com/uenitty/why-declarative-ui-is-less-fragile?slide=16 https://gyazo.com/ebe0552450d4f1dcb2fc000408aa1d75
モードがあるとモードエラーを起こす
https://gyazo.com/3b7c67819393e166f52ef80b9b4266ed https://speakerdeck.com/uenitty/why-declarative-ui-is-less-fragile?slide=18