Open1

Recoil勉強用のリンク集

shohigashishohigashi

公式

解説

recoil + custom hooks

recoilはcustomhooksとの相性がよさそうです

実践でやってみた

  • 最近試しました。
    • 1ページ、5,6本のAPIを埋め込むような画面で
    • pros
      • atomとselector(derived state)に分けた設計が容易にできるので画面の状態を宣言的に作ることができそうです
      • シンプルに(=特に気を付けないで)作っても再レンダリングが非常に抑制されたものが作れるのでパフォーマンスが高いものが作れそうです
        • 必要なatomやselectorを必要な場所にだけ呼び出す、という書き方が自然にできるのでpropsの受け渡しがかなり減るのも一つの理由かと思います
    • cons
      • カスタムフックで隠蔽することが前提になっているので、reactアプリを初めて触る人には敷居が高いかなと思いました。
      • atomを無秩序に作ってしまうとその管理が大変そうです
        • 特に「似たような状態を作らない」「このatomはどこで管理するのか」をチームメンバーが迷いなく遂行できるためには、ディレクトリ戦略をうまく考えないといけないなと思いました
        • 「論理的に関係しないと思っていたatomが開発途中で実は関係する」と分かった時のリファクタリングも大変そう
          • reduxならある程度大きい粒度でstateが分割されているのでまだリファクタリングは大変ではないように思います
      • (2021/05/03時点で)devtoolsが(まだ)ない(多分)
        • redux devtoolsのようにアクション発行の時系列がわかったり、その時点での状態のスナップショットがわかったりするのが恋しいです
    • 何となく自分は状態を「A. 隣り合う2,3コンポーネント内で完結するもの」、「B. ページ内で使われるもの」、「C. アプリ全体で使われるもの」の3階層に分類していて、今までは「AはuseStateをはじめとするhooks, B, Cはredux」というように分けていたいのですが、reduxだとBのようなほかのページで参照されない状態を

reoiclで非同期処理

recoilでSSR

困ったこと