File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -49,13 +49,7 @@ addTodoButton.onclick = () => {
4949
5050** 宣言的UI** は、こういった性質に着目します。より一般的に説明するのであれば、アプリケーションの状態$S$に対し、関数$f(S)$によりUIの状態を表現できるのであれば、開発者の関心を$S$の変化と$f$の定義のみに絞ることができるというわけです。
5151
52- まず具体的に状態を持ったTodoアプリケーションを見てみましょう。 状態$S$は変数` state ` であり、関数$f(S)$は変数` state ` の値に応じたUIを描画する` render ` 関数です。
53- アプリケーションの状態は` remove("寝る") ` によってState AからState Bに遷移します。State AとState BのUIは、` render ` 関数により、状態の値に応じて描画されます。アプリケーションの状態が
54- ` state ` と` render ` 関数に集約されていることがわかります。
55-
56- ![ 宣言的UIの概念図] ( ./declarative-ui.drawio.svg )
57-
58- 次に、コードで確認してみましょう。先ほどのToDoアプリケーションのコードを、宣言的UIのアプローチを用いて書き換えてみましょう。状態を追いやすいよう、TypeScriptを用いて記述します。
52+ 具体的なコードで確認してみましょう。先ほどのToDoアプリケーションのコードを、宣言的UIのアプローチを用いて書き換えてみましょう。状態を追いやすいよう、TypeScriptを用いて記述します。
5953
6054まずはアプリケーションの状態と、その状態を格納する変数を宣言します。
6155
@@ -94,7 +88,9 @@ function removeTodo(index: number) {
9488
9589<ViewSource url = { import .meta .url } path = " _samples/todo-declarative" />
9690
97- これにより、アプリケーション全体の状態が変数` state ` に集約され、開発者が意識すべき状態のパターンを大幅に減らすことに成功しました。
91+ これにより、アプリケーション全体の状態が変数` state ` に集約され、開発者が意識すべき状態のパターンを大幅に減らすことに成功しました。このコードでは、状態$S$は変数` state ` に、関数$f(S)$は` render ` 関数に対応しています。例えば、` remove("寝る") ` によって` state ` が変化すると、` render ` 関数が再び呼ばれ、新しい状態に応じたUIが描画されます。
92+
93+ ![ 宣言的UIの概念図] ( ./declarative-ui.drawio.svg )
9894
9995## React
10096
You can’t perform that action at this time.
0 commit comments