フロントエンドと時空
時空
時間
空間
フロントエンドの空間
画面のこと
フロントエンドの時間
空間の変化、状態の変化
空間の分割統治
コンポーネントに分けて考える時、コンポーネントが通過する時間を意識する必要が生まれた
hooksで、コンポーネントの生存消滅時の挙動や、コンポーネントがレンダリングを跨いだときの某を記述できる
これは時間を扱うことを意味する
分割統治できるのは、木構造だけ
コンポーネントとは、要するにHTMLのパーツ
アプリケーションをHTMLとして扱うための木構造であり、実際に扱いたいデータについての管理方法はまだ改善の余地があった
ここにflux以後やflux戦争とか触れるべき
エディタを作ることを想像するとわかりやすい
データが有って、それに対するreadとwriteを持つようなビューが必要
同じデータをアプリケーションの木構造の複数の葉で扱う
これを楽して扱うapiが欲しくなる
ちなみにhooksは、コンポーネントの時間を扱うと同時に、コンポーネントと外側とをさわるAPIとしての役割も発達した
依存グラフに基づいた値のハンドリング
エディタを実装するときにめちゃくちゃ欲しくなる
Recoilが便利
実装が読みやすい
むかしをふりかえる
rxjsが実は依存グラフの実現は楽だったはず
なんで廃れた?
大衆に対して抽象論を押し付けてしまったからでは?
miyamonz.iconは抽象論は好きだが
任意のものをデータの流れとして捉えるのは別に良い
しかしこれは、時間軸のみを意識することになる
アプリケーションの木構造を快適にハンドリングする手法がなかった
上記の仮想DOM移行の流れにおいて、rxjsが何をどう解決するかを提供できなかった
ただ、rxjsはそもそもなにかの特効薬を提供する義務はないし、必要なところではとても役立つはず
何を解決できうるのかはライブラリユーザが各自で考えればいいだけのこと
そうこうしてるうちにjotaiとか便利な方法が生まれた
実現したいことは近いが、実装方法がかなり違うはず
recoilの実装はよくわからん
APIの違いについては意識しておきたい
recoil, jotaiのapiはすごい直感的