Open9

状態管理ライブラリRecoil素振り

ばーんばーん

https://zenn.dev/nekoniki/articles/406087e43f4865

公式とこのZennを拝読。
Atom = store
Slector = reducer
みたいな印象。

現時点での疑問

Context API と何が違うのかな?
あとstate更新された時の再レンダリングは今までと同様?

ばーんばーん

疑問追加

keyがユニークじゃなかったらerrorでる?
selector の get はライブラリ標準関数?

ばーんばーん

atom / selector について

Atom = store
Slector = reducer
みたいな印象。

完全に認識違いでした。

atom

https://recoiljs.org/docs/api-reference/core/atom

ちゃんと公式API読みましょう(自戒)
どちらかというとglobalにも扱うことができるuseStateみたいな感覚。

selector

https://recoiljs.org/docs/api-reference/core/selector

こっちがstoreに近い印象。
get / set が提供されていて、それ以外の変更を受け付けなさそう。

もうちょっと調査する

APIは種類が多いので一旦後回し

ばーんばーん

selectorの理解少し進んだ。
atomは完全にデータストア。 + 更新機能付き。
selectorはatomから値を抽出して、別の値を吐き出したり、セットしたりできる。
どっちかとういうとcustom hookに近い印象を受けてる

今悩んでるのは

  • keyの命名方法
  • レンダリングされるもののとされないものの違い
  • ロジックをどこまでselectorに持たせるか
ばーんばーん

基本的にatomと同じ型しか受け付けないのでcustom hookみたいな使い方は難しそう

ばーんばーん

ReactのAPIに沿おうと考えるのではなく、別のツリーができているという感覚が正しそう。
store(Redux)はデータを切り離したけど結局はReactに沿っていた感。

ばーんばーん

順次APIについて調べていく。前言撤回でAPIの種類少ないっすわ