フロントエンドと時空
空間の分割統治
コンポーネントに分けて考える時、コンポーネントが通過する時間を意識する必要が生まれた
hooksで、コンポーネントの生存消滅時の挙動や、コンポーネントがレンダリングを跨いだときの某を記述できる
これは時間を扱うことを意味する
なんで廃れた?
大衆に対して抽象論を押し付けてしまったからでは?
任意のものをデータの流れとして捉えるのは別に良い
しかしこれは、時間軸のみを意識することになる
アプリケーションの木構造を快適にハンドリングする手法がなかった
上記の仮想DOM移行の流れにおいて、rxjsが何をどう解決するかを提供できなかった ただ、rxjsはそもそもなにかの特効薬を提供する義務はないし、必要なところではとても役立つはず
何を解決できうるのかはライブラリユーザが各自で考えればいいだけのこと
そうこうしてるうちにjotaiとか便利な方法が生まれた 実現したいことは近いが、実装方法がかなり違うはず
APIの違いについては意識しておきたい
koushisa.icon
時間と空間を合わせて表現する物理学の用語
時間
空間
Hot, Coldやオペレータにより、機能ごとのデータフローを時系列, 空間, 座標レベルで分離する
Hot
Cold
空間分割はコンポーネントに任せる
同じデータソースでもコンポーネント固有のデータフローを構築できる
依存グラフを持っている
参照されたときに全ての依存グラフを同じ時間軸で計算する
量子力学的な特徴があるなkoushisa.icon 依存グラフの値はキャッシュされ、グラフに変化がない場合は再計算せず同じ結果を返す
たくさんのオペレータを覚えなくていい
参照透過性を持ちつつもコンポーネントのレンダリングに紐付いている それが常に最新の値であることが保証されている
時間のリストに対するtake, map, filter, reduce, pipeなど...
koushisa.iconは覚えきれない